Mercurial > dropbear
comparison dbutil.c @ 753:d63ef1e211ea
Take transmit and receive keys into use separately
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 04 Apr 2013 00:18:50 +0800 |
parents | 9a5438271556 |
children | 7dcb46da72d9 a625f9e135a4 |
comparison
equal
deleted
inserted
replaced
752:24172f555f9c | 753:d63ef1e211ea |
---|---|
136 } | 136 } |
137 | 137 |
138 | 138 |
139 #ifdef DEBUG_TRACE | 139 #ifdef DEBUG_TRACE |
140 void dropbear_trace(const char* format, ...) { | 140 void dropbear_trace(const char* format, ...) { |
141 | |
142 va_list param; | 141 va_list param; |
142 struct timeval tv; | |
143 | 143 |
144 if (!debug_trace) { | 144 if (!debug_trace) { |
145 return; | 145 return; |
146 } | 146 } |
147 | 147 |
148 gettimeofday(&tv, NULL); | |
149 | |
148 va_start(param, format); | 150 va_start(param, format); |
149 fprintf(stderr, "TRACE (%d): ", getpid()); | 151 fprintf(stderr, "TRACE (%d) %d.%d: ", getpid(), tv.tv_sec, tv.tv_usec); |
150 vfprintf(stderr, format, param); | 152 vfprintf(stderr, format, param); |
151 fprintf(stderr, "\n"); | 153 fprintf(stderr, "\n"); |
152 va_end(param); | 154 va_end(param); |
153 } | 155 } |
156 | |
154 void dropbear_trace2(const char* format, ...) { | 157 void dropbear_trace2(const char* format, ...) { |
155 | 158 static int trace_env = -1; |
156 va_list param; | 159 va_list param; |
157 | 160 struct timeval tv; |
158 if (!(debug_trace && getenv("DROPBEAR_TRACE2"))) { | 161 |
162 if (trace_env == -1) { | |
163 trace_env = getenv("DROPBEAR_TRACE2") ? 1 : 0; | |
164 } | |
165 | |
166 if (!(debug_trace && trace_env)) { | |
159 return; | 167 return; |
160 } | 168 } |
161 | 169 |
170 gettimeofday(&tv, NULL); | |
171 | |
162 va_start(param, format); | 172 va_start(param, format); |
163 fprintf(stderr, "TRACE2 (%d): ", getpid()); | 173 fprintf(stderr, "TRACE2 (%d) %d.%d: ", getpid(), tv.tv_sec, tv.tv_usec); |
164 vfprintf(stderr, format, param); | 174 vfprintf(stderr, format, param); |
165 fprintf(stderr, "\n"); | 175 fprintf(stderr, "\n"); |
166 va_end(param); | 176 va_end(param); |
167 } | 177 } |
168 #endif /* DEBUG_TRACE */ | 178 #endif /* DEBUG_TRACE */ |
737 #if defined(DROPBEAR_CLIENT) || defined(ENABLE_SVR_PUBKEY_AUTH) | 747 #if defined(DROPBEAR_CLIENT) || defined(ENABLE_SVR_PUBKEY_AUTH) |
738 int buf_getline(buffer * line, FILE * authfile) { | 748 int buf_getline(buffer * line, FILE * authfile) { |
739 | 749 |
740 int c = EOF; | 750 int c = EOF; |
741 | 751 |
742 TRACE2(("enter buf_getline")) | |
743 | |
744 buf_setpos(line, 0); | 752 buf_setpos(line, 0); |
745 buf_setlen(line, 0); | 753 buf_setlen(line, 0); |
746 | 754 |
747 while (line->pos < line->size) { | 755 while (line->pos < line->size) { |
748 | 756 |
762 out: | 770 out: |
763 | 771 |
764 | 772 |
765 /* if we didn't read anything before EOF or error, exit */ | 773 /* if we didn't read anything before EOF or error, exit */ |
766 if (c == EOF && line->pos == 0) { | 774 if (c == EOF && line->pos == 0) { |
767 TRACE2(("leave buf_getline: failure")) | |
768 return DROPBEAR_FAILURE; | 775 return DROPBEAR_FAILURE; |
769 } else { | 776 } else { |
770 TRACE2(("leave buf_getline: success")) | |
771 buf_setpos(line, 0); | 777 buf_setpos(line, 0); |
772 return DROPBEAR_SUCCESS; | 778 return DROPBEAR_SUCCESS; |
773 } | 779 } |
774 | 780 |
775 } | 781 } |