Changeset 25485
- Timestamp:
- 05/13/08 19:41:09 (6 months ago)
- Location:
- haiku/trunk
- Files:
-
- 4 modified
-
build/jam/HaikuImage (modified) (2 diffs)
-
src/kits/network/Jamfile (modified) (3 diffs)
-
src/kits/network/dns/irs/lcl_sv.cpp (modified) (8 diffs)
-
src/kits/network/libnetapi/Jamfile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
haiku/trunk/build/jam/HaikuImage
r25367 r25485 65 65 ; 66 66 BEOS_SYSTEM_LIBS = libbe.so $(HAIKU_LIBSTDC++) libmedia.so libtracker.so 67 libtranslation.so libnet work.so libdebug.so libbsd.so libmail.so68 lib textencoding.so libz.so libfreetype.so libpng.so libmidi.so libmidi2.so69 lib device.so libgame.so libscreensaver.so <revisioned>libroot.so67 libtranslation.so libnetapi.so libnetwork.so libdebug.so libbsd.so 68 libmail.so libtextencoding.so libz.so libfreetype.so libpng.so libmidi.so 69 libmidi2.so libdevice.so libgame.so libscreensaver.so <revisioned>libroot.so 70 70 $(X86_ONLY)libGL.so libfluidsynth.so liblpsolve55.so liblinprog.so libalm.so 71 71 libilmimf.so … … 191 191 # libnetwork.so replaces quite a few libraries 192 192 BEOS_SYSTEM_LIBS_LIBNETWORK_ALIASES 193 = libsocket.so libbind.so libnet.so libnetapi.so libbnetapi.so;193 = libsocket.so libbind.so libnet.so ; 194 194 195 195 local lib ; -
haiku/trunk/src/kits/network/Jamfile
r24908 r25485 3 3 UsePrivateHeaders libroot net shared ; 4 4 UsePrivateKernelHeaders ; 5 6 local services = [ FGristFiles services ] ;7 SEARCH on $(services) = [ FDirName $(SUBDIR) dns defaults ] ;8 AddFileDataResource libnetwork.so : CSTR:201:services : $(services) ;9 5 10 6 SharedLibrary libnetwork.so : … … 14 10 r5_compatibility.cpp 15 11 : 16 <libnetwork_netapi>netapi.o17 18 12 <libnetwork_dns>dns_dst.o 19 13 <libnetwork_dns>dns_inet.o … … 23 17 <libnetwork_dns>dns_resolv.o 24 18 <libnetwork_dns>dns_private.o 19 ; 25 20 26 be 27 ; 21 local services = [ FGristFiles services ] ; 22 SEARCH on $(services) = [ FDirName $(SUBDIR) dns defaults ] ; 23 AddFileDataAttribute libnetwork.so : services : string : $(services) ; 28 24 29 25 SubInclude HAIKU_TOP src kits network dns ; -
haiku/trunk/src/kits/network/dns/irs/lcl_sv.cpp
r19644 r25485 64 64 #include "port_after.h" 65 65 66 #include <File.h>67 #include <Resources.h>68 #include <TypeConstants.h>69 70 66 #include <sys/types.h> 71 67 #include <sys/socket.h> … … 81 77 #include <stdlib.h> 82 78 79 #include <fs_attr.h> 80 #include <image.h> 81 #include <TypeConstants.h> 82 83 83 84 84 #define IRS_SV_MAXALIASES 35 … … 87 87 FILE* file; 88 88 char line[BUFSIZ+1]; 89 char* resource_file;90 char* resource_end;91 char* resource_line;92 89 struct servent servent; 93 90 char* aliases[IRS_SV_MAXALIASES]; … … 116 113 get_next_line(struct service_private* service) 117 114 { 118 if (service->file != NULL) 119 return fgets(service->line, BUFSIZ, service->file); 120 if (service->resource_file == NULL) 121 return NULL; 122 123 char* line = service->resource_line; 124 while (line < service->resource_end 125 && line[0] 126 && line[0] != '\n') 127 line++; 128 129 if (service->resource_line >= service->resource_end 130 || service->resource_line == line) 131 return NULL; 132 133 strlcpy(service->line, service->resource_line, 134 min_c(line + 1 - service->resource_line, BUFSIZ)); 135 service->resource_line = line + 1; 136 137 return service->line; 115 if (service->file == NULL) 116 return NULL; 117 return fgets(service->line, BUFSIZ, service->file); 138 118 } 139 119 … … 150 130 fclose(service->file); 151 131 152 free(service->resource_file);153 132 memput(service, sizeof *service); 154 133 memput(sv, sizeof *sv); … … 169 148 170 149 if ((service->file = fopen(_PATH_SERVICES, "r")) != NULL) { 171 if (fcntl(fileno(service->file), F_SETFD, 1) == 0)150 if (fcntl(fileno(service->file), F_SETFD, FD_CLOEXEC) == 0) 172 151 return; 173 152 … … 176 155 } 177 156 178 // opening the standard file has file has failed, use resources 179 180 if (service->resource_file != NULL) { 181 service->resource_line = service->resource_file; 182 return; 183 } 184 157 // opening the standard file has file has failed, use the attribute 158 159 // find our library image 160 addr_t addressInImage = (addr_t)&sv_rewind; 161 const char* path = NULL; 185 162 image_info info; 186 if (find_own_image(&info) < B_OK) 187 return; 188 189 BFile file; 190 if (file.SetTo(info.name, B_READ_ONLY) < B_OK) 191 return; 192 193 BResources resources(&file); 194 if (resources.InitCheck() < B_OK) 195 return; 196 197 size_t size; 198 const void* data = resources.LoadResource(B_STRING_TYPE, "services", &size); 199 if (data == NULL) 200 return; 201 202 service->resource_file = (char *)malloc(size); 203 if (service->resource_file == NULL) 204 return; 205 206 memcpy(service->resource_file, data, size); 207 service->resource_line = service->resource_file; 208 service->resource_end = service->resource_file + size; 163 int32 cookie; 164 165 while (get_next_image_info(B_CURRENT_TEAM, &cookie, &info) == B_OK) { 166 if (addressInImage >= (addr_t)info.text 167 && addressInImage < (addr_t)info.text + info.text_size) { 168 path = info.name; 169 break; 170 } 171 } 172 173 if (path == NULL) 174 return; 175 176 // open the library 177 int libraryFD = open(path, O_RDONLY); 178 if (libraryFD < 0) 179 return; 180 181 // open the attribute 182 int attrFD = fs_open_attr(libraryFD, "services", B_STRING_TYPE, O_RDONLY); 183 close(libraryFD); 184 if (attrFD < 0) 185 return; 186 187 // attach it to a FILE 188 service->file = fdopen(attrFD, "r"); 189 if (service->file == NULL) { 190 close(attrFD); 191 return; 192 } 193 194 if (fcntl(fileno(service->file), F_SETFD, FD_CLOEXEC) == 0) 195 return; 196 197 fclose(service->file); 198 service->file = NULL; 209 199 } 210 200 … … 216 206 char *p, *cp, **q; 217 207 218 if (service->file == NULL && service->resource_file == NULL)208 if (service->file == NULL) 219 209 sv_rewind(sv); 220 210 221 if (service->file == NULL && service->resource_file == NULL)211 if (service->file == NULL) 222 212 return NULL; 223 213 -
haiku/trunk/src/kits/network/libnetapi/Jamfile
r21912 r25485 44 44 boot home Desktop haiku-networkingkit lib ; 45 45 } else { 46 MergeObject <libnetwork_netapi>netapi.o :46 SharedLibrary libnetapi.so : 47 47 $(netapi_sources) 48 : be $(TARGET_NETWORK_LIBS) 48 49 ; 49 50 }
