|
|
1.1 ! root 1: /* tftp defines */ ! 2: ! 3: #define TFTP_SESSIONS_MAX 3 ! 4: ! 5: #define TFTP_SERVER 69 ! 6: ! 7: #define TFTP_RRQ 1 ! 8: #define TFTP_WRQ 2 ! 9: #define TFTP_DATA 3 ! 10: #define TFTP_ACK 4 ! 11: #define TFTP_ERROR 5 ! 12: ! 13: #define TFTP_FILENAME_MAX 512 ! 14: ! 15: #ifdef PRAGMA_PACK_SUPPORTED ! 16: #pragma pack(1) ! 17: #endif ! 18: ! 19: struct tftp_t { ! 20: struct ip ip; ! 21: struct udphdr udp; ! 22: u_int16_t tp_op; ! 23: union { ! 24: struct { ! 25: u_int16_t tp_block_nr; ! 26: u_int8_t tp_buf[512]; ! 27: } tp_data; ! 28: struct { ! 29: u_int16_t tp_error_code; ! 30: u_int8_t tp_msg[512]; ! 31: } tp_error; ! 32: u_int8_t tp_buf[512 + 2]; ! 33: } x; ! 34: } PACKED__; ! 35: ! 36: #ifdef PRAGMA_PACK_SUPPORTED ! 37: #pragma pack(0) ! 38: #endif ! 39: ! 40: void tftp_input(struct mbuf *m);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.