]> git.saurik.com Git - cycript.git/blame - Network.cpp
Began work on implementing E4X.
[cycript.git] / Network.cpp
CommitLineData
a2b15234
JF
1#include "cycript.hpp"
2
4644480a
JF
3/* Cycript - Remove Execution Server and Disassembler
4 * Copyright (C) 2009 Jay Freeman (saurik)
5*/
6
7/* Modified BSD License {{{ */
8/*
9 * Redistribution and use in source and binary
10 * forms, with or without modification, are permitted
11 * provided that the following conditions are met:
12 *
13 * 1. Redistributions of source code must retain the
14 * above copyright notice, this list of conditions
15 * and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the
17 * above copyright notice, this list of conditions
18 * and the following disclaimer in the documentation
19 * and/or other materials provided with the
20 * distribution.
21 * 3. The name of the author may not be used to endorse
22 * or promote products derived from this software
23 * without specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
27 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
30 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
32 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
36 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
38 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39*/
40/* }}} */
41
a2b15234
JF
42#include <sys/types.h>
43#include <sys/socket.h>
44
45bool CYRecvAll_(int socket, uint8_t *data, size_t size) {
46 while (size != 0) if (size_t writ = _syscall(recv(socket, data, size, 0))) {
47 data += writ;
48 size -= writ;
49 } else
50 return false;
51 return true;
52}
53
54bool CYSendAll_(int socket, const uint8_t *data, size_t size) {
55 while (size != 0) if (size_t writ = _syscall(send(socket, data, size, 0))) {
56 data += writ;
57 size -= writ;
58 } else
59 return false;
60 return true;
61}