]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
Server adds timestamp to the packet
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 16 Jan 2008 15:31:25 +0000 (16:31 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 16 Jan 2008 15:31:25 +0000 (16:31 +0100)
wme_test/common.h
wme_test/wclient.c
wme_test/wserver.c

index 0139965f0c1017b1c70eb94e1ef6bc15966ea0df..be14553b26b3303081592f2a5503c9442e95158e 100644 (file)
@@ -20,6 +20,19 @@ enum ac {
        AC_BK = 3
 };
 
+struct msg_t {
+       unsigned int tos;
+       struct timespec send_timestamp, sendback_timestamp;
+       unsigned long int seqn;
+       int stream;
+};
+
+union msg_buff {
+       struct msg_t msg;
+       char nonsense[BUFFSIZE];
+};
+
+
 extern const int prio_to_ac[8];
 extern const unsigned int ac_to_tos[4];
 extern const char *ac_to_text[4];
index e99e06812e22ecd4fa88ed703fbc6e1eba233c37..21f6aa921c96efe08e526ca8ed2f871da72bc1e6 100644 (file)
@@ -41,18 +41,6 @@ FILE* logfd;
 char* server_addr; 
 char logfname[100];
 
-struct msg_t {
-       unsigned int tos;
-       struct timespec send_timestamp;
-       unsigned long int seqn;
-       int stream;
-};
-
-union msg_buff {
-       struct msg_t msg;
-       char nonsense[BUFFSIZE];
-};
-
 /* maximal traffic delay in ms - 10 s*/
 #define MAX_DELAY_US 10000000
 
index 8f2438a838dfb39ac8eff53a4c56ddf154001810..81912f3353f402e5c6b988bbb19a241e578602b6 100644 (file)
@@ -75,7 +75,7 @@ int create_ac_socket(unsigned int ac)
 
 void* qhandler(void* queue)
 {
-       char    buff[BUFFSIZE];
+       union msg_buff buff;
        struct  sockaddr_in rem_addr;
        int     mlen;
        unsigned int ac, rem_addr_length; 
@@ -88,7 +88,7 @@ void* qhandler(void* queue)
        set_rt_prio(90-ac);
 
        while (1) {
-               while ((mlen = recvfrom(ac_sockfd[ac], buff, sizeof(buff) , 0, \
+               while ((mlen = recvfrom(ac_sockfd[ac], &buff, sizeof(buff) , 0, \
                        (struct sockaddr*)&rem_addr, &rem_addr_length)) < 0) {
                            if (errno == EINTR) continue;
                            perror("Chyba pri prijimani pozadavku");
@@ -100,7 +100,8 @@ void* qhandler(void* queue)
                fflush(stdout);
 #endif
                receivers[ac].received++;
-               while (sendto(ac_sockfd[ac], buff, mlen,0 ,(struct sockaddr*)&rem_addr, \
+               clock_gettime(CLOCK_MONOTONIC, &buff.msg.sendback_timestamp);
+               while (sendto(ac_sockfd[ac], &buff, mlen,0 ,(struct sockaddr*)&rem_addr, \
                        sizeof(rem_addr)) < 0){
                            if (errno == EINTR) continue;
                            perror("Chyba pri zapisu");