raw: Merge data.
authorroot (spook.local) <root@spook.local>
Sun, 20 Mar 2011 14:17:34 +0000 (16:17 +0200)
committerroot (spook.local) <root@spook.local>
Sun, 20 Mar 2011 14:17:34 +0000 (16:17 +0200)
src/raw/swift_raw.c
src/raw/swift_types.h

index 2299aca..1bb2d89 100644 (file)
@@ -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);
 }
 
 /*
index cbf930b..41b212d 100644 (file)
@@ -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