diff --git a/build.sh b/build.sh index bf96085..767c2f2 100755 --- a/build.sh +++ b/build.sh @@ -18,6 +18,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib32 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib +#it doesn't work yet so we unset the vars unset LD_LIBRARY_PATH echo $LD_LIBRARY_PATH diff --git a/clibs/ip.cc b/clibs/ip.cc index 826ac44..9edb2f9 100644 --- a/clibs/ip.cc +++ b/clibs/ip.cc @@ -2,6 +2,8 @@ #include #include #include +#include +#include #include #include #include @@ -48,6 +50,42 @@ namespace ipNode { args.GetReturnValue().Set(ifr.ifr_flags); } + void nodeSetIpv4(const nodeparam& args) { + v8::Isolate* isolate = args.GetIsolate(); + + if (args.Length() < 2 || !args[0]->IsString() || !args[1]->IsString()) { + isolate->ThrowException(v8::Exception::TypeError( + v8::String::NewFromUtf8(isolate, "Invalid arguments ip.setIpv4").ToLocalChecked())); + return; + } + + const std::string iface = argToString(args[0]);; + const std::string ip = argToString(args[1]); + + struct ifreq ifr; + struct sockaddr_in sai; + + strncpy(ifr.ifr_name, iface.c_str(), IFNAMSIZ); + + memset(&sai, 0, sizeof(struct sockaddr)); + sai.sin_family = AF_INET; + sai.sin_port = 0; + + sai.sin_addr.s_addr = inet_addr(ip.c_str()); + + memcpy( &ifr.ifr_ifru, &sai, sizeof(struct sockaddr)); + + int err = ioctl(inet_sock_fd, SIOCSIFADDR, &ifr); + + if(err != 0) { + char errstr[36]; + sprintf(errstr, "Error while getting flags %d", errno); + isolate->ThrowException(v8::Exception::TypeError( + v8::String::NewFromUtf8(isolate, errstr).ToLocalChecked())); + } + args.GetReturnValue().Set(ifr.ifr_flags); + } + void nodeSetFlags(const nodeparam& args) { v8::Isolate* isolate = args.GetIsolate(); @@ -66,6 +104,7 @@ namespace ipNode { void Initialize(v8::Local exports) { NODE_SET_METHOD(exports, "setFlags", nodeSetFlags); NODE_SET_METHOD(exports, "getFlags", nodeGetFlags); + NODE_SET_METHOD(exports, "setIpv4", nodeSetIpv4); } NODE_MODULE(ip_api, Initialize) diff --git a/createLiveImage.sh b/createLiveImage.sh index b26c6fb..c7225d4 100755 --- a/createLiveImage.sh +++ b/createLiveImage.sh @@ -21,7 +21,7 @@ do done #create a 8Gb iso -dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 8)) count=0 +dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 2)) count=0 #creating a msdos image for mbr boot parted disk.img mklabel msdos diff --git a/fakesh/fakesh.c b/fakesh/fakesh.c index 23f507b..a92f406 100644 --- a/fakesh/fakesh.c +++ b/fakesh/fakesh.c @@ -15,7 +15,7 @@ int main(int argc, char const *argv[]) args[i-1] = (char *)argv[i]; //args have to be null terminated - args[argc - 1] = NULL; + args[argc - 1] = (char *) NULL; printf("starting %s\n", argv[1]); diff --git a/rootfs overrides/boot/grub/grub.cfg b/rootfs overrides/boot/grub/grub.cfg deleted file mode 100644 index f000746..0000000 --- a/rootfs overrides/boot/grub/grub.cfg +++ /dev/null @@ -1,91 +0,0 @@ -### BEGIN /etc/grub.d/00_header ### -insmod part_gpt -insmod part_msdos -if [ -s $prefix/grubenv ]; then - load_env -fi -if [ "${next_entry}" ] ; then - set default="${next_entry}" - set next_entry= - save_env next_entry - set boot_once=true -else - set default="${saved_entry}" -fi - -if [ x"${feature_menuentry_id}" = xy ]; then - menuentry_id_option="--id" -else - menuentry_id_option="" -fi - -export menuentry_id_option - -if [ "${prev_saved_entry}" ]; then - set saved_entry="${prev_saved_entry}" - save_env saved_entry - set prev_saved_entry= - save_env prev_saved_entry - set boot_once=true -fi - -function savedefault { - if [ -z "${boot_once}" ]; then - saved_entry="${chosen}" - save_env saved_entry - fi -} - -function load_video { - if [ x$feature_all_video_module = xy ]; then - insmod all_video - else - insmod efi_gop - insmod efi_uga - insmod ieee1275_fb - insmod vbe - insmod vga - insmod video_bochs - insmod video_cirrus - fi -} - -if [ x$feature_default_font_path = xy ] ; then - font=unicode -else -insmod part_gpt -insmod ext2 -search --no-floppy --label --set=root root - font="/usr/share/grub/unicode.pf2" -fi - -if loadfont $font ; then - set gfxmode=auto - load_video - insmod gfxterm - set locale_dir=$prefix/locale - set lang=fr_FR - insmod gettext -fi -terminal_input console -terminal_output gfxterm -insmod part_gpt -insmod ext2 -search --no-floppy --label --set=root root -insmod gfxmenu -loadfont ($root)/usr/share/grub/themes/sleek/DejaVuSans-48.pf2 -loadfont ($root)/usr/share/grub/themes/sleek/DejaVuSans-Regular-14.pf2 -loadfont ($root)/usr/share/grub/themes/sleek/DejaVuSans-Regular-16.pf2 -loadfont ($root)/usr/share/grub/themes/sleek/terminus-14.pf2 -loadfont ($root)/usr/share/grub/themes/sleek/terminus-16.pf2 -insmod png -set theme=($root)/usr/share/grub/themes/sleek/theme.txt -export theme -if [ x$feature_timeout_style = xy ] ; then - set timeout_style=menu - set timeout=1 -# Fallback normal timeout code in case the timeout_style feature is -# unavailable. -else - set timeout=1 -fi diff --git a/rootfs overrides/usr/bin/ifset.js b/rootfs overrides/usr/bin/ifset.js new file mode 100644 index 0000000..e69de29