View | Details | Raw Unified | Return to bug 13930
Collapse All | Expand All

(-)ctorrent-dnh3.2/bencode.cpp (+11 lines)
Lines 201-206 Link Here
201
  return (EOF == fputc('e', fp)) ? 0: 1;
201
  return (EOF == fputc('e', fp)) ? 0: 1;
202
}
202
}
203
203
204
size_t bencode_ullint(const unsigned long long int ullinteger, FILE *fp)
205
{
206
  char buf[MAX_ULLINT_SIZ];
207
  if (EOF == fputc('i', fp)) return 0;
208
  if (MAX_ULLINT_SIZ <= snprintf(buf, MAX_ULLINT_SIZ, "%llu", (unsigned long long)ullinteger)) {
209
    return 0;
210
  }
211
  if (fwrite(buf, strlen(buf), 1, fp) != 1) return 0;
212
  return (EOF == fputc('e', fp)) ? 0 : 1;
213
}
214
204
size_t bencode_begin_dict(FILE *fp)
215
size_t bencode_begin_dict(FILE *fp)
205
{
216
{
206
  return (EOF == fputc('d',fp)) ? 0 : 1;
217
  return (EOF == fputc('d',fp)) ? 0 : 1;
(-)ctorrent-dnh3.2/bencode.h (+2 lines)
Lines 10-15 Link Here
10
#define KEYNAME_LISTSIZ 256
10
#define KEYNAME_LISTSIZ 256
11
11
12
#define MAX_INT_SIZ 64
12
#define MAX_INT_SIZ 64
13
#define MAX_ULLINT_SIZ 64
13
14
14
#define QUERY_STR 0
15
#define QUERY_STR 0
15
#define QUERY_INT 1
16
#define QUERY_INT 1
Lines 29-34 Link Here
29
size_t bencode_buf(const char *str,size_t len,FILE *fp);
30
size_t bencode_buf(const char *str,size_t len,FILE *fp);
30
size_t bencode_str(const char *str, FILE *fp);
31
size_t bencode_str(const char *str, FILE *fp);
31
size_t bencode_int(const int integer, FILE *fp);
32
size_t bencode_int(const int integer, FILE *fp);
33
size_t bencode_ullint(const unsigned long long int ullinteger, FILE *fp);
32
size_t bencode_begin_dict(FILE *fp);
34
size_t bencode_begin_dict(FILE *fp);
33
size_t bencode_begin_list(FILE *fp);
35
size_t bencode_begin_list(FILE *fp);
34
size_t bencode_end_dict_list(FILE *fp);
36
size_t bencode_end_dict_list(FILE *fp);
(-)ctorrent-dnh3.2/btfiles.cpp (-1 / +1 lines)
Lines 700-706 Link Here
700
    
700
    
701
  }else{
701
  }else{
702
    if( bencode_str("length", fp) != 1 ) return 0;
702
    if( bencode_str("length", fp) != 1 ) return 0;
703
    if( bencode_int(m_btfhead->bf_length, fp) != 1) return 0;
703
    if (bencode_ullint(m_btfhead->bf_length, fp) != 1) return 0;
704
    
704
    
705
    if( bencode_str("name", fp) != 1 ) return 0;
705
    if( bencode_str("name", fp) != 1 ) return 0;
706
    return bencode_str(m_btfhead->bf_filename, fp);
706
    return bencode_str(m_btfhead->bf_filename, fp);
(-)ctorrent-dnh3.2/btfiles.h (-2 / +2 lines)
Lines 33-39 Link Here
33
  
33
  
34
  BTFILE *m_btfhead;
34
  BTFILE *m_btfhead;
35
  char *m_directory;
35
  char *m_directory;
36
  uint64_t m_total_files_length;
36
  off_t m_total_files_length;
37
  size_t m_total_opened;	// already opened
37
  size_t m_total_opened;	// already opened
38
  size_t m_nfiles;
38
  size_t m_nfiles;
39
  BTFILE **m_file;
39
  BTFILE **m_file;
Lines 64-70 Link Here
64
                  const char *saveas);
64
                  const char *saveas);
65
65
66
  char *GetDataName() const;
66
  char *GetDataName() const;
67
  uint64_t GetTotalLength() const { return m_total_files_length; }
67
  off_t GetTotalLength() const { return m_total_files_length; }
68
  ssize_t IO(char *buf, uint64_t off, size_t len, const int iotype);
68
  ssize_t IO(char *buf, uint64_t off, size_t len, const int iotype);
69
  size_t FillMetaInfo(FILE* fp);
69
  size_t FillMetaInfo(FILE* fp);
70
70

Return to bug 13930