From owner-svn-soc-all@FreeBSD.ORG Tue Jul 3 21:55:43 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D153F106564A for ; Tue, 3 Jul 2012 21:55:40 +0000 (UTC) (envelope-from vchan@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 03 Jul 2012 21:55:40 +0000 Date: Tue, 03 Jul 2012 21:55:40 +0000 From: vchan@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120703215540.D153F106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r238934 - soc2012/vchan/gtcp/bwalex-tc-play X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jul 2012 21:55:43 -0000 Author: vchan Date: Tue Jul 3 21:55:40 2012 New Revision: 238934 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238934 Log: newest material in tcplay.c Deleted: soc2012/vchan/gtcp/bwalex-tc-play/tcplay_new.c Modified: soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c Modified: soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c ============================================================================== --- soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c Tue Jul 3 19:11:38 2012 (r238933) +++ soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c Tue Jul 3 21:55:40 2012 (r238934) @@ -28,7 +28,11 @@ */ #include + +#if defined(__DragonFly__) #include +#endif + #include #include #include @@ -38,8 +42,16 @@ #include #include #include -#include -#include +//#if defined(__linux__) +//#include +//#include +//#elif defined(__DragonFly__) +//#include +//#include +#include +#include + +//#endif #include "crc32.h" #include "tcplay.h" @@ -911,6 +923,7 @@ return -1; } + int map_volume(const char *map_name, const char *device, int sflag, const char *sys_dev, int protect_hidden, const char *keyfiles[], @@ -945,6 +958,7 @@ return 0; } +/*fix*/ static int dm_remove_device(const char *name) @@ -964,7 +978,7 @@ ret = 0; out: if (dmt) - dm_task_destroy(dmt); + /*fix*/dm_task_destroy(dmt); return ret; } @@ -979,17 +993,18 @@ char *uu; char *uu_stack[64]; int uu_stack_idx; -//#if defined(__DragonFly__) -// uint32_t status; -//#endif +/*#if defined(__DragonFly__)*/ + uint32_t status; +/*#endif*/ int r, ret = 0; int j; off_t start, offset; char dev[PATH_MAX]; char map[PATH_MAX]; uint32_t cookie; - - dm_udev_set_sync_support(1); + static int force = 0; //new for FreeBSD + + /* dm_udev_set_sync_support(1); */ if ((params = alloc_safe_mem(512)) == NULL) { tc_log(1, "could not allocate safe parameters memory"); @@ -1010,7 +1025,8 @@ cipher_chain = cipher_chain->prev, j++) { cookie = 0; - + force = 1; //used in g_gate_destroy + /* aes-cbc-essiv:sha256 7997f8af... 0 /dev/ad0s0a 8 */ /* iv off---^ block off--^ */ snprintf(params, 512, "%s %s %"PRIu64 " %s %"PRIu64, @@ -1019,9 +1035,9 @@ #ifdef DEBUG printf("Params: %s\n", params); #endif - - if ((dmt = dm_task_create(DM_DEVICE_CREATE)) == NULL) { - tc_log(1, "dm_task_create failed\n"); + /* changed from, "if ((dmt = dm_task_create(DM_DEVICE_CREATE)) == NULL)" */ + if ((dmt = g_gatel_create()) == 1) { + tc_log(1, "g_gatel_create failed\n"); ret = -1; goto out; } @@ -1035,21 +1051,22 @@ else sprintf(map, "%s.%d", mapname, j); - if ((dm_task_set_name(dmt, map)) == 0) { - tc_log(1, "dm_task_set_name failed\n"); + /* changed from, "if ((dm_task_set_name(dmt, map)) == 0" */ + if (map == NULL) { + tc_log(1, "task_set_name failed\n"); ret = -1; goto out; } -//#if defined(__linux__) -// uuid_generate(info->uuid); -// if ((uu = malloc(1024)) == NULL) { -// tc_log(1, "uuid_unparse memory failed\n"); -// ret = -1; -// goto out; -// } -// uuid_unparse(info->uuid, uu); -//#elif defined(__DragonFly__) +/*#if defined(__linux__) + uuid_generate(info->uuid); + if ((uu = malloc(1024)) == NULL) { + tc_log(1, "uuid_unparse memory failed\n"); + ret = -1; + goto out; + } + uuid_unparse(info->uuid, uu); +#elif defined(__DragonFly__) uuid_create(&info->uuid, &status); if (status != uuid_s_ok) { tc_log(1, "uuid_create failed\n"); @@ -1063,9 +1080,9 @@ ret = -1; goto out; } -//#endif +#endif - if ((dm_task_set_uuid(dmt, uu)) == 0) { + if (( dm_task_set_uuid(dmt, uu)) == 0) { free(uu); tc_log(1, "dm_task_set_uuid failed\n"); ret = -1; @@ -1074,7 +1091,7 @@ free(uu); - if ((dm_task_add_target(dmt, start, info->size, "crypt", params)) == 0) { + if (( dm_task_add_target(dmt, start, info->size, "crypt", params)) == 0) { tc_log(1, "dm_task_add_target failed\n"); ret = -1; goto out; @@ -1101,6 +1118,7 @@ } dm_udev_wait(cookie); +*/ if ((r = asprintf(&uu_stack[uu_stack_idx++], "%s", map)) < 0) tc_log(1, "warning, asprintf failed. won't be able to " @@ -1111,8 +1129,8 @@ start = 0; sprintf(dev, "/dev/mapper/%s.%d", mapname, j); - dm_task_destroy(dmt); - dm_task_update_nodes(); + g_gate_destroy(dmt, force); /* was dm_task_destroy(dmt); */ + /*not needed in FreeBSD dm_task_update_nodes(); */ } out: @@ -1128,7 +1146,7 @@ uu_stack[j-1]); #endif if ((uu_stack[j-1] == NULL) || - ((r = dm_remove_device(uu_stack[--j])) != 0)) { + ((r = /*and here*/dm_remove_device(uu_stack[--j])) != 0)) { tc_log(1, "Tried to unroll dm changes, " "giving up.\n"); break; @@ -1154,7 +1172,7 @@ char map[PATH_MAX]; int i, error; - if ((error = dm_remove_device(mapname)) != 0) { + if ((error = /*and here*/dm_remove_device(mapname)) != 0) { tc_log(1, "Could not remove mapping %s\n", mapname); return error; }