51 RETURN(err, "Base user has no virtual password table"); |
51 RETURN(err, "Base user has no virtual password table"); |
52 |
52 |
53 if(!write_buf(fd, "", 0)) |
53 if(!write_buf(fd, "", 0)) |
54 RETURN(err, "Failed while writing initial OK response"); |
54 RETURN(err, "Failed while writing initial OK response"); |
55 |
55 |
56 vpwentry entry; |
56 vpwentry* entry; |
57 while(reader->get(entry)) { |
57 while((entry = reader->get()) != 0) { |
58 mystring code = entry.to_record(); |
58 mystring code = entry->to_record(); |
59 unsigned length = entry.name.length() + 1 + code.length() + 1; |
59 unsigned length = entry->name.length() + 1 + code.length(); |
60 char buf[length]; |
60 char buf[length]; |
61 memcpy(buf, entry.name.c_str(), entry.name.length()+1); |
61 memcpy(buf, entry->name.c_str(), entry->name.length()+1); |
62 memcpy(buf+entry.name.length()+1, code.c_str(), code.length()+1); |
62 memcpy(buf+entry->name.length()+1, code.c_str(), code.length()); |
63 if(!write_buf(fd, buf, length)) |
63 if(!write_buf(fd, buf, length)) |
64 RETURN(err, "Failed while writing list entry"); |
64 RETURN(err, "Failed while writing list entry"); |
|
65 delete entry; |
65 } |
66 } |
66 |
67 |
67 delete reader; |
68 delete reader; |
68 RETURN(ok, ""); |
69 RETURN(ok, ""); |
69 } |
70 } |