From: root (spook.local) Date: Sun, 20 Mar 2011 14:17:34 +0000 (+0200) Subject: raw: Merge data. X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=c0754762501000f987e113a76d1ceb470d4808e1;p=swifty.git raw: Merge data. --- diff --git a/src/raw/swift_raw.c b/src/raw/swift_raw.c index 2299aca..1bb2d89 100644 --- a/src/raw/swift_raw.c +++ b/src/raw/swift_raw.c @@ -156,6 +156,13 @@ int sw_socket(int __domain, int __type, int __protocol) /* Socket is fully open. */ list->rw_state = STATE_NO_SHUT; + if (__domain != AF_INET || __type != SOCK_RAW || __protocol != IPPROTO_SWIFT) { + errno = EINVAL; + return -1; + } + + s = socket(AF_INET, SOCK_RAW, IPPROTO_SWIFT); + return s; list_add_err: @@ -215,8 +222,6 @@ ssize_t sw_sendto(int __fd, __const void *__buf, size_t __n, { ssize_t bytes_sent; - /* TODO */ - return bytes_sent; } @@ -252,9 +257,7 @@ ssize_t sw_sendmsg(int __fd, __const struct msghdr *__message, { ssize_t bytes_sent; - /* TODO */ - - return bytes_sent; + return sendmsg(__fd, __message, __flags); } /* diff --git a/src/raw/swift_types.h b/src/raw/swift_types.h index cbf930b..41b212d 100644 --- a/src/raw/swift_types.h +++ b/src/raw/swift_types.h @@ -35,9 +35,13 @@ extern "C" { */ #define SWIFT_HASH_SIZE 8 +struct sw_state { + unsigned int state:4; + unsigned int info:4; +}; struct sw_hash { - unsigned char h_array[SWIFT_HASH_SIZE]; + u_int8_t h_array[SWIFT_HASH_SIZE]; }; struct sockaddr_sw { @@ -58,8 +62,9 @@ struct sockaddr_sw { struct swhdr { /* file hash (to be seeded or requested) */ - u_int8_t base_hash[SWIFT_HASH_SIZE]; - /* TODO */ + struct sw_hash base_hash; + u_int8_t piece_hash; + struct sw_state sock_state; }; #ifdef __cplusplus