Compare commits

...

2821 Commits

Author SHA1 Message Date
UbitUmarov 4f00fb2659 flotsam: minor log message change 2020-07-30 21:18:58 +01:00
UbitUmarov 87b55a0627 flotsam: still bad 2020-07-30 21:14:15 +01:00
UbitUmarov 3b06891252 dont break asset cache folders spread more than needed 2020-07-30 18:10:06 +01:00
UbitUmarov 111c741f1b flotsam: change the changes 2020-07-30 01:40:54 +01:00
UbitUmarov 1c37f357b3 flotsam: more changes 2020-07-30 01:39:04 +01:00
UbitUmarov c19a0cc21f flotsam: deeper changes on files expire 2020-07-30 00:02:02 +01:00
UbitUmarov c575c211f9 flotsam: slower... 2020-07-28 21:01:45 +01:00
UbitUmarov bd2476c61e flotsam: slow it a lot more, make some debug log visible 2020-07-28 04:26:13 +01:00
UbitUmarov d52b794828 flotsam add a cooldown on files expire/deletes also 2020-07-28 02:57:41 +01:00
UbitUmarov cbc8974245 duuhhhh what was in my coffe ? 2020-07-27 18:17:09 +01:00
UbitUmarov e2982fbadc make clear that MaxRegionsViewDistance can be set to zero, disabling nearby regions visibility and crossings 2020-07-27 18:05:38 +01:00
UbitUmarov c4a0b8fa3f fix the option name on the ini file 2020-07-27 16:39:40 +01:00
UbitUmarov be5c2bb212 Xengine: remove option CompactMemOnLoad, that wasn't that good; add option AttachmentsDomainLoading to allow attachments to load on own appdomain even if AppDomainLoading is false. Scripts will be slower, use more memory but will be disposed on avatar leave, if gc is in good mood. This may be usefull on regions with a lot of traffic, sure use Yengine even better, 2020-07-27 16:13:09 +01:00
UbitUmarov 0c716cbd73 remove async await no longer used 2020-07-24 19:24:34 +01:00
UbitUmarov e08ca7402c reduce default http keepalive to just 30s because to viewers connections flood. 2020-07-24 19:19:16 +01:00
UbitUmarov d9a680703f cosmetics on http server 2020-07-24 17:12:38 +01:00
UbitUmarov e0aff5e640 avoid some null refs 2020-07-24 13:24:55 +01:00
UbitUmarov bb56157c92 remove a forgotten gc collect on flotsam cache 2020-07-23 23:11:59 +01:00
UbitUmarov 6fafb7462d avoid ethernal references 2020-07-23 19:39:45 +01:00
UbitUmarov c077cfdd78 bad c&p 2020-07-23 19:08:25 +01:00
UbitUmarov c2af3a5474 avoid ethernal references 2020-07-23 19:04:56 +01:00
UbitUmarov 25582af3dc lludpclient: use jobengine again, keeping less ethernal references 2020-07-23 18:35:34 +01:00
UbitUmarov 03e3078a9f add fixed skys to opensim library 2020-07-21 18:17:00 +01:00
UbitUmarov 6e15cf41a4 fix new sky ambient color; Rainbow texture with retouch fro AI Austin (red side gradient) 2020-07-21 17:38:11 +01:00
UbitUmarov 53b9f87da6 change defauld sky cloud D parameter 2020-07-19 21:50:56 +01:00
UbitUmarov baa95b8707 add/change some assets 2020-07-19 10:45:02 +01:00
UbitUmarov 730c864df8 add another asset. This may not be that good still :( 2020-07-16 23:27:03 +01:00
UbitUmarov ce92ee1057 cache bad folders requests for 30s. Suitcase can induce a ton of this, and viewers keep requesting 2020-07-16 18:23:17 +01:00
UbitUmarov 7a55f82f74 add a expire cache for simple items that can be a stored on a dictionary key, not value 2020-07-16 18:17:04 +01:00
UbitUmarov 1f822c6077 allow the use of Sky or water from a asset, not just full daycycle. This may need more work 2020-07-15 22:56:09 +01:00
UbitUmarov f7104a66a5 change parcel env group power check to only parcel environment modify 2020-07-15 22:52:47 +01:00
UbitUmarov 4176e1491e missing file 2020-07-15 19:42:40 +01:00
UbitUmarov 4bc74139a4 dispose prematurely discon sockets 2020-07-15 19:15:11 +01:00
UbitUmarov 402186844c cosmetics 2020-07-15 19:13:22 +01:00
UbitUmarov 6a27f3fb20 useless changes 2020-07-15 05:15:32 +01:00
UbitUmarov 6c5bf4ed25 useless cosmetics 2020-07-15 01:40:53 +01:00
UbitUmarov f32c0ead05 avoid c# fun things, plus cosmetics 2020-07-14 17:54:58 +01:00
UbitUmarov b2068fd39f give up calling gc.collect on flotsamcache. Did nothing visible and has negative side effects 2020-07-13 23:26:09 +01:00
UbitUmarov ba972b50ed disable console command restart, that currently will just break everything ( there is also the restart module that will do the same if used ) 2020-07-13 21:35:50 +01:00
UbitUmarov fe7d9625aa cosmetics 2020-07-13 06:16:11 +01:00
UbitUmarov 6ba5b78851 check local grid before doing hg fetch asset metadata 2020-07-11 20:48:50 +01:00
UbitUmarov 541cb15751 fix a bug on flotsam getfilename 2020-07-11 20:03:31 +01:00
UbitUmarov ebf5b69283 mantis 8725: increase channeldigger smooth strength, tanks Datapanic 2020-07-10 20:14:14 +01:00
UbitUmarov 82ccf57533 take some asset classes out of ViewerEnvironment.cs to own files 2020-07-10 19:54:40 +01:00
UbitUmarov fe5e6d4189 avoid a null ref during shutdown (one of them..) 2020-07-10 19:35:39 +01:00
UbitUmarov 01b4f83421 change the 4 fixed skys for eep viewers again (sorry). This also fixes the issue of viewers not showing the selected fixed sky. Clear viewer cache. On regions use fcache deletedefaultassets so updated grid ones are used. In alternative use fcache cachedefaultassets to override all default assets by the ones on this commit. Note that this hides the grid ones, and this is lost if you clear the region asset cache 2020-07-10 00:12:36 +01:00
UbitUmarov f334c1206f change Midday asset (uuid 6c83e853-e7f8-cad7-8ee6-5f31c453721c) fixing its water. eep viewers cache needs to be clear, region asset cache needs this entry removed (comand fcache deletedefaultassets will remove default assets from region cache, forcing reload from grid). Normal robust asset services should update it grid side. Otherwise, if already present, you will need to change directly on db 2020-07-09 18:40:48 +01:00
UbitUmarov 107ece1ce0 change default (in code) waterFogDensity 2020-07-09 17:38:31 +01:00
UbitUmarov af6fa37cc2 mantis 8675: flotsam cache only log missing files if log level >= 2 (thanks mewtwo0641 ) this log will include things that may not even be assets due to how gatherer works; change a bit filename composition 2020-07-09 16:27:11 +01:00
UbitUmarov 28fcbc65f9 add GC.collect to flotsam cache expire. This is ugly but so is GC 2020-07-07 17:35:27 +01:00
UbitUmarov e5c2bd505c fix a bug on region eep env set permission 2020-06-30 20:23:51 +01:00
UbitUmarov 5b596bb29e update script syntax 2020-06-30 13:29:42 +01:00
UbitUmarov c4f05016d7 of course merge did messup libomv 2020-06-29 01:30:40 +01:00
UbitUmarov fb35f31078 fix the merge 2020-06-29 01:29:58 +01:00
UbitUmarov 7cf329c846 Merge branch 'master' into uglysky
# Conflicts:
#	OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
#	bin/OpenMetaverse.Rendering.Meshmerizer.dll
#	bin/OpenMetaverse.StructuredData.dll
#	bin/OpenMetaverse.dll
#	bin/OpenMetaverseTypes.dll
2020-06-29 01:28:33 +01:00
UbitUmarov 1c4300ff91 fix a flag name 2020-06-29 01:16:12 +01:00
UbitUmarov 34fa6abc00 do not trust ms documentation about inner stream dispose 2020-06-29 01:03:00 +01:00
UbitUmarov d7fb822533 Merge branch 'master' into uglysky 2020-06-27 13:34:49 +01:00
UbitUmarov 16cfb3deab mantis 8717: fix local heap use account (will automatlic recompile scripts) 2020-06-27 13:33:11 +01:00
UbitUmarov 27a81d4909 minor moon rotation change 2020-06-27 13:16:28 +01:00
UbitUmarov a568b759bc sunphase depends on the env where av is or has 2020-06-26 11:29:31 +01:00
UbitUmarov 71d8bcd90c missed other 2020-06-25 21:47:57 +01:00
UbitUmarov 86bd9ca255 missing changed test files 2020-06-25 21:24:51 +01:00
UbitUmarov e2ffc17d1f fix sqlite region migrations 2020-06-25 17:44:23 +01:00
UbitUmarov 73754670ca small change on wl converter 2020-06-25 17:20:56 +01:00
UbitUmarov b7750e52d6 lang env on PGSQL 2020-06-24 11:36:34 +01:00
UbitUmarov 63ae8a09c6 removed the disabled region settings from tests 2020-06-24 08:18:50 +01:00
UbitUmarov 768f506a23 work around sunlight_color mess 2020-06-23 16:07:25 +01:00
UbitUmarov 60da45b715 lang env on sqlite 2020-06-23 14:28:34 +01:00
UbitUmarov 1d42d8ab6e still not good, add more spaghetti 2020-06-22 18:51:10 +01:00
UbitUmarov f3eb71113e still not good, add more spaghetti 2020-06-22 18:16:48 +01:00
UbitUmarov 7b3ac662dc on load, store the env via the module, so it is stored. This api is still a bit incoerent 2020-06-22 16:47:20 +01:00
UbitUmarov 16c18c0855 actually just go back to extension settings.bin. Actual name it totally irrelevant, as long it is unique 2020-06-22 16:27:21 +01:00
UbitUmarov eec92454b0 define again asset file extention settings.bin for bw comp 2020-06-22 16:23:49 +01:00
UbitUmarov 8fe2cd6c46 save/load environments to/from oars 2020-06-22 15:46:39 +01:00
UbitUmarov 7b77609537 shut up HG STATUS NOTIFIER 2020-06-21 17:09:33 +01:00
UbitUmarov 7da23b6714 missing files 2020-06-21 14:59:20 +01:00
UbitUmarov 53b0ee242d add a 3 to 1 daycycle and make it the default 2020-06-21 14:27:24 +01:00
UbitUmarov 5b87347476 and add some untested ossl 2020-06-21 12:41:10 +01:00
UbitUmarov e04af236f2 forced still bad 2020-06-21 02:56:20 +01:00
UbitUmarov 29bf9522e2 forced still bad 2020-06-21 02:31:57 +01:00
UbitUmarov bcacd2ff21 cancel forced env on make child agent 2020-06-21 01:46:36 +01:00
UbitUmarov 5b56a09cb2 some fixes on env protocol, forced env, etc 2020-06-21 01:41:14 +01:00
UbitUmarov 17e7e9b354 enable threat check on the new ossl method 2020-06-19 21:17:26 +01:00
UbitUmarov edf93abdbc try adding a clear init 2020-06-19 20:06:59 +01:00
UbitUmarov e3ecf0ddbe add LSL_Integer osReplaceAgentEnvironment(LSL_Key agentkey, LSL_Integer transition, LSL_String environment). note this is a hack, we cant do the ll* one 2020-06-19 19:55:40 +01:00
UbitUmarov d322248fd1 fix send parcel env version 2020-06-19 02:06:58 +01:00
UbitUmarov dd2495be9d remove dead config options 2020-06-18 16:52:45 +01:00
UbitUmarov 1b870131d4 give/use the new group power 2020-06-18 14:33:14 +01:00
UbitUmarov 362025be38 update libomv 2020-06-18 14:23:24 +01:00
UbitUmarov 3c8b4423b1 missing file 2020-06-18 13:49:46 +01:00
UbitUmarov cca383b452 more to go, fix lsl funtions for parcels env 2020-06-18 13:47:34 +01:00
UbitUmarov f708b413a1 more to go 2020-06-18 13:18:08 +01:00
UbitUmarov 6cb2cb40cc a ton more to go 2020-06-18 12:16:00 +01:00
UbitUmarov 8f79439558 a ton more to go 2020-06-18 12:11:36 +01:00
UbitUmarov 44c90bf294 misspell all across the board 2020-06-18 12:01:53 +01:00
UbitUmarov 104f7f0eb2 store parcel uglysky on mysql region db (others one day..) 2020-06-18 01:36:01 +01:00
UbitUmarov 369a2e1453 clear parcels uglysky on clearing override flag 2020-06-17 21:08:52 +01:00
UbitUmarov e7807d4359 missing files 2020-06-17 16:12:24 +01:00
UbitUmarov e538628dec 2first dirty version and non persistent parcel uglysky 2020-06-17 15:49:13 +01:00
UbitUmarov 7a9e03876a block some region/estate settings no longer avaiable 2020-06-17 12:34:38 +01:00
UbitUmarov 24689f064c disable cap EstateChangeInfo, currently broken on viewers 2020-06-17 11:46:56 +01:00
UbitUmarov 46dce3cedb speeup time update a bit ( this will be a conf option) 2020-06-16 16:12:14 +01:00
UbitUmarov 70f867a518 yeack, revert that... for now we do need to use diferent notification methods 2020-06-16 15:27:43 +01:00
UbitUmarov 24a0f0f6da send event message WindlightRefresh for all viewers 2020-06-16 13:47:44 +01:00
UbitUmarov 833ae02121 update libomv 2020-06-16 04:18:14 +01:00
UbitUmarov 00b2837d30 fix wl lightnorm 2020-06-16 01:58:08 +01:00
UbitUmarov 9ae867abd3 missing file 2020-06-15 04:06:24 +01:00
UbitUmarov 4329f5962a stop sending sun direction, recent viewers should not need it, and it costs cpu 2020-06-15 04:03:06 +01:00
UbitUmarov b3ce8e9fc7 big numbers need more bits.. 2020-06-14 21:41:50 +01:00
UbitUmarov 3a5d5fd50e store as llsd notation on region db, plus a few more changes 2020-06-14 20:45:09 +01:00
UbitUmarov dfa69b1869 add some assets 2020-06-14 01:18:59 +01:00
UbitUmarov d1c78564bb Merge branch 'master' into uglysky 2020-06-14 00:01:38 +01:00
UbitUmarov d7089bcff2 mantis 8715: fix peer http port. thanks GuduleLapointe 2020-06-13 23:59:55 +01:00
UbitUmarov 05dc8594f0 corner cases.. 2020-06-13 19:06:17 +01:00
UbitUmarov 1980c01eb8 change legacy altitudes 2020-06-13 18:08:48 +01:00
UbitUmarov 9a18678fec and of course i missed a file.. 2020-06-13 15:51:17 +01:00
UbitUmarov b37141182a more on SendViewerTime() 2020-06-13 15:48:35 +01:00
UbitUmarov 3bf0f6c407 do not display 0:xx:xx PM 2020-06-12 20:02:55 +01:00
UbitUmarov e404d671c8 better keep some things sorted 2020-06-12 10:16:59 +01:00
UbitUmarov d1ecccfaca add some ossl 2020-06-11 19:55:12 +01:00
UbitUmarov e407f69b2c add other env time function 2020-06-11 19:52:59 +01:00
UbitUmarov e8b9735f95 add some lsl functions 2020-06-11 17:12:22 +01:00
UbitUmarov 02ccbd0bbd some more changes; add some interface functions 2020-06-11 17:08:39 +01:00
UbitUmarov c6fcc33e49 a few more changes on sun position 2020-06-11 06:08:21 +01:00
UbitUmarov 13ed40d9f6 replace sun module 2020-06-11 00:01:43 +01:00
UbitUmarov 9ce70be5ce env asset can be any llsd type 2020-06-10 20:32:30 +01:00
UbitUmarov 2179aa14e0 Merge branch 'master' into uglysky 2020-06-10 20:21:07 +01:00
UbitUmarov efb2b67456 update libomv 2020-06-10 20:19:48 +01:00
UbitUmarov fa0a87f1c0 Merge branch 'master' into uglysky 2020-06-10 12:37:40 +01:00
UbitUmarov a61b5d5d38 revert some changes to groups V2 that will break external modules, with no special gain 2020-06-10 12:36:10 +01:00
UbitUmarov 8d2b502393 missing file 2020-06-10 09:37:28 +01:00
UbitUmarov e2be90caaf replace lightshare early work 2020-06-10 09:26:55 +01:00
UbitUmarov 0d76635113 do store a new flag on region db 2020-06-09 19:44:57 +01:00
UbitUmarov bde4354c15 some changes on viewer caps detection 2020-06-09 18:43:26 +01:00
UbitUmarov fa0044fb6c webutil remove some not that usefull timing logs, plust some cosmetics 2020-06-09 13:39:30 +01:00
UbitUmarov f4dfe2159c xinventory connector, remove a garbage dictionary copy. remove naive retry option 2020-06-09 13:32:42 +01:00
UbitUmarov 444a6b707b also allow purge/delete of LostAndFound folder, or we can not clean it with recent viewers 2020-06-09 04:20:18 +01:00
UbitUmarov 5b338fb31a fix a typo 2020-06-09 03:11:05 +01:00
UbitUmarov e1b234d9d0 change show uptime to 24hour format 2020-06-09 02:20:35 +01:00
UbitUmarov d3cb210080 apply similar changes to groups V2 2020-06-09 01:03:27 +01:00
UbitUmarov 351235f78e XmlRpcGroup: minor change 2020-06-09 00:53:03 +01:00
UbitUmarov 9c55c5bdb2 XmlRpcGroup: fix groupNoticesEnabled check 2020-06-09 00:04:01 +01:00
UbitUmarov 1a57abebfc XmlRpcGroup: try to improve notices attachments 2020-06-08 23:17:41 +01:00
UbitUmarov 775420c46a set object select on demand, not when it is created 2020-06-05 01:57:17 +01:00
UbitUmarov b440a9534d AgentCircuitManager: always remove possible old one on add 2020-06-04 20:19:05 +01:00
UbitUmarov 38fc68ac0c some changes to AgentCircuitManager 2020-06-04 19:58:07 +01:00
UbitUmarov 7ef69edf33 flotsam: also expire weakreferences 2020-06-04 19:52:34 +01:00
UbitUmarov 7a07731371 on simple cases no need to parse at all 2020-06-04 02:50:39 +01:00
UbitUmarov 84a3ff37ab don't load a full xml doc when we just want a single forward parse 2020-06-04 02:37:27 +01:00
UbitUmarov 301f28cfd4 add some heap variation to floatsam optional cache expire log 2020-06-03 14:34:11 +01:00
UbitUmarov 2efa53af52 also show total number of a avatar prims on attachments show 2020-06-03 01:19:42 +01:00
UbitUmarov 0a22bde6d1 replace a clear attachments by a full delete 2020-06-03 00:36:03 +01:00
UbitUmarov 3188db7041 force Yengine scripts recompile 2020-06-02 22:18:28 +01:00
UbitUmarov 06bdfc48d0 move the ToUpper to where it belongs 2020-06-02 18:25:13 +01:00
UbitUmarov 239c07ed9d oops ToUpper is needed on default animation names 2020-06-02 18:17:53 +01:00
UbitUmarov 8cebc84de7 let objects use default animations 2020-06-02 18:05:22 +01:00
UbitUmarov fde3727453 avoid null refs on part inventory, that can happen if only using default animations names for example 2020-06-02 17:02:42 +01:00
UbitUmarov 9b09bd255c change osNpcSaveAppearance to save huds by default like before, so its coerent with past and the other save app methods 2020-06-01 21:31:18 +01:00
UbitUmarov 9bd5310fe8 expose the option to save HUDs into notecard on the API 2020-06-01 21:05:57 +01:00
UbitUmarov 873b3b0af6 do not store HUDs on appearence notecards 2020-06-01 19:07:49 +01:00
UbitUmarov 190acf093a finally enable cap GetAsset(ViewerAssets) by default. Note that users with FS6.0.x will have issues. They need to upgrade 2020-06-01 18:12:32 +01:00
UbitUmarov 43094592d5 show number of prims on attachments show command 2020-06-01 02:02:00 +01:00
UbitUmarov e0c49c42e3 and more changes on uuid gatherer and libomv 2020-05-31 14:21:50 +01:00
UbitUmarov 41d9441512 fix typo 2020-05-31 02:17:51 +01:00
UbitUmarov f0581ff1ff and more changes on uuid gatherer and libomv 2020-05-31 01:35:03 +01:00
UbitUmarov 8ac70b6155 and more changes on uuid gatherer and libomv 2020-05-30 21:34:13 +01:00
UbitUmarov 42b75021b6 more changes on uuid gatherer 2020-05-30 19:44:11 +01:00
UbitUmarov 5ac1fff43e update libomv 2020-05-30 19:43:41 +01:00
UbitUmarov b541de034c make some limit use of new libomv things 2020-05-30 15:51:01 +01:00
UbitUmarov 7b8db526b3 update libomv 2020-05-30 15:28:44 +01:00
UbitUmarov 9896224605 agent preferences needs to work without backend storage 2020-05-30 14:13:07 +01:00
UbitUmarov 8f39405380 err ok not so fast 2020-05-27 00:18:32 +01:00
UbitUmarov 563d5d30ee some more suport for a new inventory and asset type 2020-05-27 00:04:19 +01:00
UbitUmarov 182b266ec4 avoid potencial null ref 2020-05-26 15:16:37 +01:00
UbitUmarov d2dbe3f4d0 Yeackk bad bad typo 2020-05-26 14:46:15 +01:00
UbitUmarov 8a9ebe48ce mantis 8708: dont bother updating something abotu to be deleted ( and that was also wrong) 2020-05-26 13:23:06 +01:00
UbitUmarov 0a48da85a3 SOP to xml: don't waste space with some unset optional parameters. 2020-05-26 12:48:08 +01:00
UbitUmarov d460a3fc86 missing file 2020-05-25 14:50:10 +01:00
UbitUmarov 1c5b9e5af8 missing file 2020-05-25 14:45:53 +01:00
UbitUmarov 66eb8a2c2e let engines Suspend and resume scripts return false if script not on that engine 2020-05-25 14:41:59 +01:00
UbitUmarov 5f52de2578 mantis 8706: avoid spurius logs on Yengine during object delete 2020-05-24 15:04:44 +01:00
UbitUmarov cc4e14a88d add missing ';' on mysql connection strings 2020-05-23 17:06:19 +01:00
UbitUmarov b598573f41 fix DataSnapShot 2020-05-22 16:55:20 +01:00
UbitUmarov 4679ede2f2 missing file 2020-05-22 14:03:28 +01:00
UbitUmarov f326cc8901 reduce garbage on WebFetchInvDesc 2020-05-22 14:00:12 +01:00
UbitUmarov 3c33d5c448 change nullterm arg default true 2020-05-22 00:55:54 +01:00
UbitUmarov 86d8f9963c make a bit more use of it 2020-05-22 00:29:01 +01:00
UbitUmarov 8d8ead9776 add own version of utf8 getbytes. More recent .net versions (core?) do have similar, but not want got there now, besides only similar.. 2020-05-21 22:41:15 +01:00
UbitUmarov 6e0d82f584 add 2 minor speedups on allow parcel owner more restrive checks 2020-05-21 21:55:23 +01:00
UbitUmarov 35b0b77656 update libomv 2020-05-20 13:51:42 +01:00
UbitUmarov 0bfacb7892 change hg link request log message 2020-05-20 03:02:01 +01:00
UbitUmarov fffac7d531 mantis 8704: fix issues on YEngine 2020-05-20 00:35:51 +01:00
UbitUmarov 5167bd097b mantis 8250: a few more changes 2020-05-19 21:50:21 +01:00
UbitUmarov 337832ecbe mantis 8250: if flying, stay flying 2020-05-19 17:01:32 +01:00
UbitUmarov 822fea4a99 missing file, of course 2020-05-19 16:05:43 +01:00
UbitUmarov aca62392ac mantis 8250: make same changes to avatar move to target (still no new OSSL) 2020-05-19 15:59:53 +01:00
UbitUmarov 28b22a4fc1 revert the use of direct data on xml decode, for now 2020-05-18 04:31:11 +01:00
UbitUmarov aca5728ab2 try to work around missing BOM 2020-05-18 02:37:03 +01:00
UbitUmarov e308ab8843 .net xml things don't like null terminated strings 2020-05-18 01:12:40 +01:00
UbitUmarov 9ecee558b5 whatever... 2020-05-18 00:28:24 +01:00
UbitUmarov 4fa8e20aab add more cooldown to flotsam cache files expire 2020-05-18 00:20:28 +01:00
UbitUmarov fe72b54652 cosmetics 2020-05-17 17:16:29 +01:00
UbitUmarov 9ce52ed2fc cosmetics 2020-05-16 03:01:44 +01:00
UbitUmarov dc5a0244fc cosmetics 2020-05-16 02:22:01 +01:00
UbitUmarov cfe1285869 missing files 2020-05-16 02:14:13 +01:00
UbitUmarov 65ca238cd7 do unpack appearence cacheitems on tps 2020-05-16 01:52:53 +01:00
UbitUmarov baf5c61387 simplify GruntWork on getassets (needs more) 2020-05-16 01:16:19 +01:00
UbitUmarov 48892ad8a7 timestamp http requests 2020-05-15 23:40:19 +01:00
UbitUmarov 7098091616 avoid null ref 2020-05-15 18:17:13 +01:00
UbitUmarov c0597e278b update libomv 2020-05-15 15:12:34 +01:00
UbitUmarov 79bb22eaf6 fix typo 2020-05-15 15:11:06 +01:00
UbitUmarov 214cf5d60b llsdXml: do direct base64 encode 2020-05-15 14:41:38 +01:00
UbitUmarov 5848d3a6bb make scenepresence IDisposable 2020-05-14 13:36:27 +01:00
UbitUmarov 67bc086782 add sog TemporaryInstance flag 2020-05-14 12:51:55 +01:00
UbitUmarov 8b77162020 make sog, sop and sop inventory IDisposable 2020-05-14 12:02:46 +01:00
UbitUmarov dd55a3d19c fix a bug on part inventory locking 2020-05-14 11:51:57 +01:00
UbitUmarov af1e20d054 missing file 2020-05-13 14:58:26 +01:00
UbitUmarov 4c7107dfda cosmetics 2020-05-13 14:51:05 +01:00
UbitUmarov f15c6be20c update libomv 2020-05-13 13:55:13 +01:00
UbitUmarov a2c7a13065 silly bug 2020-05-12 20:42:31 +01:00
UbitUmarov 51bc19f1ab no need to clone something Idisposable when we just want to see values 2020-05-12 18:58:07 +01:00
UbitUmarov d613287a77 mk TaskInventoryDictionary IDisposable 2020-05-12 18:52:33 +01:00
UbitUmarov c63fabe054 well and it does get all assets, grrr 2020-05-12 04:19:45 +01:00
UbitUmarov 48df8869e8 duuhh windows does not update lastaccesstime 2020-05-12 03:03:31 +01:00
UbitUmarov 6a4564869b flotsam file touch before expire: gatherer.GatherAll already touchs and tries to fecth all assets. This is nasty to use anyway.. avoid it 2020-05-12 00:56:47 +01:00
UbitUmarov 7c0b3387dd give up on simplehandler for root default get for now 2020-05-11 23:28:59 +01:00
UbitUmarov c40b297fc7 (TEST) add a default root uri GET handler. this may be usefull for some cases. 2020-05-11 23:07:29 +01:00
UbitUmarov 4bf4c76a64 cosmetics 2020-05-11 19:35:13 +01:00
UbitUmarov 8da733c485 test xbakes async/await store 2020-05-11 19:06:09 +01:00
UbitUmarov 713c222ec8 remove some redundancy 2020-05-11 15:12:21 +01:00
UbitUmarov 7f3bb9267a oops a bad end slash 2020-05-11 13:38:59 +01:00
UbitUmarov 6d92b75452 more on end slash and uri handler determination 2020-05-11 13:01:27 +01:00
UbitUmarov 2629d9d901 comment out estimatedLocalCost test 2020-05-10 21:30:34 +01:00
UbitUmarov c15869438c move currency-base-uri simulator feature to global settings, based on [Economy] economy setting on opensim.ini. make sampleMoney honour it 2020-05-10 21:27:23 +01:00
UbitUmarov aafc6579a1 remove end slash from most URLs we send to viewers 2020-05-10 21:14:52 +01:00
UbitUmarov c1d69018bd some viewers send '//' at end of url plus cosmetics 2020-05-09 18:54:51 +01:00
UbitUmarov a367828a85 clean a few more things before giving a socket to websockets. (this would happen later anyway) 2020-05-09 00:16:01 +01:00
UbitUmarov ea11f1aeb8 SampleMoneyModule: remove last '/' on currency-base-uri 2020-05-08 17:30:46 +01:00
UbitUmarov bcb9ab29d7 SampleMoneyModule: suport viewers new opensimextra currency-base-uri sim feature override for helperURI (that we call economy on some ini files, just because) 2020-05-08 17:00:43 +01:00
UbitUmarov fa5b4dc5d8 add AddOpenSimExtraFeature to simulator features, so it is done under proper locking. Fix gridservice extra features merge (they override older). This does need a future cleanup 2020-05-08 16:54:18 +01:00
UbitUmarov 72c1c923f8 SampleMoneyModule: add private xmlrpc methods 2020-05-08 14:50:46 +01:00
UbitUmarov c2c00c5d84 add httpserver HandleXmlRpcRequests with local set of xlmrpc methods 2020-05-08 14:37:08 +01:00
UbitUmarov f38c5d7ac2 SampleMoneyModule: add the needed php fake uris, since we no longer folish look for xmlrpc on everything not decoded, return back the reqeusted amount or viewers get confused. 2020-05-08 05:35:47 +01:00
UbitUmarov bf218f2cef make httpserver HandleXmlRpcRequests public 2020-05-08 05:26:25 +01:00
UbitUmarov f70f0b5ffd cosmetics 2020-05-07 14:26:07 +01:00
UbitUmarov f0fc1f628f another missing file 2020-05-07 02:33:54 +01:00
UbitUmarov 1908c095d3 missing file 2020-05-07 02:31:05 +01:00
UbitUmarov 58a4f45712 change eventqueue queues type, move event methods to other file (using partial class) 2020-05-07 02:26:25 +01:00
UbitUmarov 6c49f16132 minor changes 2020-05-07 02:15:25 +01:00
UbitUmarov ac7187eada avoid a null ref, plus some cleanup 2020-05-07 02:02:50 +01:00
UbitUmarov d5baeb4690 add SslMode=None to some connection strings 2020-05-07 00:37:25 +01:00
UbitUmarov 1e8e59e635 also override Output(string format) on remoteConsole 2020-05-02 18:31:02 +01:00
UbitUmarov 41d7d2f2f4 do dispose requests in context queue 2020-05-02 17:32:14 +01:00
UbitUmarov 0b0b5111df simplify PollServiceRequestManager, now that low level does serielaze requests 2020-05-02 15:25:05 +01:00
UbitUmarov 6d030e2f2b try to shutup some errors dunring shutdown, due to .net mess 2020-05-02 14:25:57 +01:00
UbitUmarov 1ad3a256f2 do http requests serialization at lower level 2020-05-02 14:23:52 +01:00
UbitUmarov ab14241871 mantis 8678: try fix rest console client 2020-05-01 17:49:11 +01:00
UbitUmarov 929fa3efbd dispose of jobengine queue 2020-05-01 15:42:02 +01:00
UbitUmarov 5fa81a6ca9 give viewers more time to start uploading assets 2020-04-30 17:02:37 +01:00
UbitUmarov 22c28a0260 make Caps IDisposable 2020-04-30 03:37:28 +01:00
UbitUmarov 36d005e1cc update circuit child status when it changes 2020-04-30 02:32:41 +01:00
UbitUmarov 003b109561 move DynamicMenuModule to simpleh.., 2020-04-30 01:59:36 +01:00
UbitUmarov b023914cc0 move RegionConsoleModule to simpleh.., and try to fix it 2020-04-30 01:31:34 +01:00
UbitUmarov 715c7a4825 fix localconsole so viewer one can display things 2020-04-30 00:47:53 +01:00
UbitUmarov 52f50d2035 move UploadObjectAsset to simpleh.. 2020-04-29 23:17:36 +01:00
UbitUmarov 88a81a9ca4 move ObjectAdd to simpleh.. 2020-04-29 22:55:02 +01:00
UbitUmarov c289b83250 remove dead code 2020-04-29 16:57:58 +01:00
UbitUmarov 5da135a90b a few changes to updateitemasset things 2020-04-29 16:52:54 +01:00
UbitUmarov ae15b75f79 change UploadBakedTextureModule. Make it shared and self contained 2020-04-29 16:29:20 +01:00
UbitUmarov b0e1347cd0 silly typo... 2020-04-29 13:44:44 +01:00
UbitUmarov 693adf9ecf hide handler types not in use from show http-handlers 2020-04-29 13:41:57 +01:00
UbitUmarov 6c349e6534 let show caps list display the avatar name 2020-04-29 13:32:02 +01:00
UbitUmarov d42c7e5e32 change CopyInventoryFromNotecard to simpleh.. 2020-04-29 13:18:50 +01:00
UbitUmarov b069b668e4 make some use of those 2020-04-29 12:34:48 +01:00
UbitUmarov c39ffa4dd1 add some utf8 getbytes help functions 2020-04-29 12:24:45 +01:00
UbitUmarov 7b5934ea26 add timeouts and placehold for future code 2020-04-29 10:39:36 +01:00
UbitUmarov 3a21d4de1e split the Upload* caps per asset type. We will need that one day. move uploadtaskscript to simpleh 2020-04-29 09:58:17 +01:00
UbitUmarov 7a8a7c7168 missing file 2020-04-28 21:38:03 +01:00
UbitUmarov bff6be4f66 give up on baked flag (test) 2020-04-28 21:34:54 +01:00
UbitUmarov f9e3c9adab clear baked flag on uploaded npc baked. This may cause issues on older grids (test) 2020-04-28 20:41:47 +01:00
UbitUmarov 3482259518 add SimpleBinaryHandler 2020-04-28 16:21:03 +01:00
UbitUmarov 1f7286fb95 do things in the right order 2020-04-28 15:53:50 +01:00
UbitUmarov 0b29bff512 restore lost things in the process 2020-04-28 15:47:13 +01:00
UbitUmarov 1abc6149bb split file bunchofcaps a bit 2020-04-28 15:43:07 +01:00
UbitUmarov d8b182afff change the http handler of those update* caps to simplehandler 2020-04-28 14:29:37 +01:00
UbitUmarov b6a02269f7 change update of agent or object inventory items assets. This may need better check 2020-04-28 13:48:49 +01:00
UbitUmarov dee822208a make FetchInventory2 a shared module 2020-04-28 01:39:10 +01:00
UbitUmarov 7e2ed9ee2b change FetchInventory2 region handler 2020-04-28 01:15:18 +01:00
UbitUmarov bfcbdc8a93 change voice modules handlers 2020-04-27 21:42:35 +01:00
UbitUmarov 5929e43c2c change MoapModule 2020-04-27 20:02:10 +01:00
UbitUmarov 27ea249194 change meshUploadFlagModule 2020-04-27 20:00:03 +01:00
UbitUmarov b4fc5c33ec rename wrong RegionSimpleStatsHandler as RegionStatsSimpleHandler 2020-04-27 18:06:27 +01:00
UbitUmarov 04b28f206a mantis 8688: put RegionStatsHandler : BaseStreamHandler tempory back, to give time for external modules to update 2020-04-27 18:00:37 +01:00
UbitUmarov 6d66770228 change the RemoteParcelRequest cap 2020-04-27 17:46:33 +01:00
UbitUmarov b5067baa4a it is nice to actually send the options back 2020-04-27 17:40:55 +01:00
UbitUmarov 89dee19060 move httpMethod OPTIONS handling to top, this needs to be chacked 2020-04-27 17:25:55 +01:00
UbitUmarov fa844d7e6e add soem try/catch (and yes..yes right on last commit should hed been write... 2020-04-27 16:40:54 +01:00
UbitUmarov 0518b397a3 add SimpleOSDMapHandler, for caps that have just one httpmethod and body should be decoded as OSDMap, so we don't right the same things all pver 2020-04-27 15:46:31 +01:00
UbitUmarov a3cd0cbfcb no need for stream hanlder description 2020-04-27 14:52:43 +01:00
UbitUmarov 9d08f8307e recover LLSD login handler 2020-04-27 14:35:19 +01:00
UbitUmarov 6ffb5bcf23 move RegionStatsHandler 2020-04-27 00:54:32 +01:00
UbitUmarov 8526f938f7 move /friends handler 2020-04-27 00:23:59 +01:00
UbitUmarov 8900d1139e xmlrpc and josonrpc only allowed on uri root, and only those there 2020-04-26 23:05:27 +01:00
UbitUmarov 6050eff683 improve show http-handlers 2020-04-26 21:51:15 +01:00
UbitUmarov b68748507d move /estate handler 2020-04-26 20:05:10 +01:00
UbitUmarov c07f4f3c41 change NeighbourHandlers whatever they are... 2020-04-26 19:13:35 +01:00
UbitUmarov 05f098be56 change region objecthandlers 2020-04-26 18:11:34 +01:00
UbitUmarov 473dba93e8 update show http-handlers 2020-04-26 17:03:16 +01:00
UbitUmarov e0418da6e1 change region avatarhandlers 2020-04-26 16:54:58 +01:00
UbitUmarov e63231887b move map to that 2020-04-25 23:25:29 +01:00
UbitUmarov dcc2f764f2 add a /index.php fake handler, for map. only does ?method=.. but can be extended) 2020-04-25 23:24:00 +01:00
UbitUmarov 70d2878d0a simplify default 404 message, removing wrong(missing) host info 2020-04-25 21:13:54 +01:00
UbitUmarov cafe49d44b change ParcelPropertiesUpdate 2020-04-25 20:49:13 +01:00
UbitUmarov d44baf20cd fix map image encoder parameter 2020-04-25 20:25:38 +01:00
UbitUmarov 2d1900165b change GodsModule 2020-04-25 19:44:25 +01:00
UbitUmarov 0348c01ce7 change SimulatorFeaturesModule 2020-04-25 19:19:19 +01:00
UbitUmarov 830b034b81 change EstateAccess 2020-04-25 18:54:01 +01:00
UbitUmarov 8fb4b2f4e3 change AvatarPickerSearchModule 2020-04-25 18:03:50 +01:00
UbitUmarov 5bde41b30f remove obsole code 2020-04-25 17:00:07 +01:00
UbitUmarov 605a01fe6e move monitor stats handlers to simpleStreamHandler 2020-04-25 15:54:44 +01:00
UbitUmarov 99658309ce missing file 2020-04-25 15:32:21 +01:00
UbitUmarov ee77a6d80b move some region base handlers to simpleStreamHandler 2020-04-25 15:31:30 +01:00
UbitUmarov 80de74e127 cancel keepalive if http status not OK, this maybe a bit 2 hardm but ok for now 2020-04-25 14:27:44 +01:00
UbitUmarov 7f2cfe734b null uri path is already checked at low level 2020-04-25 14:10:59 +01:00
UbitUmarov eae9928961 null method is already checked at low level, remove optional status 500 message 2020-04-25 13:45:45 +01:00
UbitUmarov 288dffcda1 change cap CreateInventoryCategory 2020-04-25 12:55:02 +01:00
UbitUmarov e48d2f2c1f move worlmap handlers to simpleStreamHandler 2020-04-24 21:40:14 +01:00
UbitUmarov 23961abf8a move EstateChangeInfo cap to simpleStreamHandler 2020-04-24 20:01:03 +01:00
UbitUmarov bac6890391 we can speedup some not simple StreamHandler a bit 2020-04-24 18:14:41 +01:00
UbitUmarov 07caee4956 move a materials cap to simpleStreamHandler 2020-04-24 17:50:13 +01:00
UbitUmarov 84cd4b4808 move a few more caps to simpleStreamHandler 2020-04-24 16:09:23 +01:00
UbitUmarov 3d09ff57f0 move a few more caps to simpleStreamHandler 2020-04-24 13:56:16 +01:00
UbitUmarov 7856192da6 move SEED cap to simpleStreamHandler 2020-04-24 02:37:50 +01:00
UbitUmarov ba8d188a0d remove another wrong ':' 2020-04-24 01:07:58 +01:00
UbitUmarov 76019258e3 remove wrong ':' 2020-04-24 01:06:52 +01:00
UbitUmarov 899620bc13 remove some '/' just wasting space 2020-04-24 00:54:21 +01:00
UbitUmarov f955482dfd move ServerReleaseNotes module to simpleStreamHandler 2020-04-24 00:40:52 +01:00
UbitUmarov 8d2f90a8e2 let show http-handlers list simpleStreamHandlers 2020-04-24 00:24:02 +01:00
UbitUmarov 9000240238 change GetCapsDetails(..) 2020-04-23 23:58:06 +01:00
UbitUmarov ca5756a100 fix agentpreferences cap path 2020-04-23 23:54:57 +01:00
UbitUmarov f2a025bc41 Oppps better clear the online before returning 2020-04-23 23:36:34 +01:00
UbitUmarov 6cd822fd83 clear online status from gridUserService when killing dup presences 2020-04-23 23:32:33 +01:00
UbitUmarov 7a24d8af52 change AgentPreferencesModule to use SimpleStreamHandler, as a simple first test 2020-04-23 22:35:31 +01:00
UbitUmarov 9a5a811c7d extend Caps to use SimpleStreamHandler 2020-04-23 22:32:18 +01:00
UbitUmarov 426d83c535 change SimpleStreamHandler to have a processor method argument 2020-04-23 22:30:40 +01:00
UbitUmarov 46162e620a change response content lengh when using rawbuffer 2020-04-23 22:28:27 +01:00
UbitUmarov 10988fe980 exclude root path from SimpleStremHandler 2020-04-23 18:29:45 +01:00
UbitUmarov 0fe51f34c2 add SimpleStrem(Request)Handler, for simple uripaths, any method or query 2020-04-23 18:23:43 +01:00
UbitUmarov e818c570bb expose uripath 2020-04-23 18:16:56 +01:00
UbitUmarov 5a51553e7d missing file 2020-04-23 16:08:16 +01:00
UbitUmarov fefcda52f5 use concurrentdic on pollhandlers, simplify a bit 2020-04-23 16:04:54 +01:00
UbitUmarov 92518129ee remove redundant code 2020-04-23 13:24:08 +01:00
UbitUmarov 212c25f906 fix http version 2020-04-22 00:00:24 +01:00
UbitUmarov 6b6baa9e51 reduce ServicePointManager.DefaultConnectionLimit back 12 for os other than windows 2020-04-21 23:05:53 +01:00
UbitUmarov 1475b83699 risk reduncing iddle timeout again, because it is needed on current framework 2020-04-21 15:46:41 +01:00
UbitUmarov 50b81258a9 change event pool timeout handling 2020-04-21 00:19:19 +01:00
UbitUmarov 43fdbf87d4 remove some useless code form http low level; delay normal connection close, to let client do it instead 2020-04-21 00:13:02 +01:00
UbitUmarov c097f148dd locate default anims also by uuid, rename/chage a few things 2020-04-18 17:26:25 +01:00
UbitUmarov e2f84f0c1f send 100 continue code the way ms seems to want 2020-04-16 02:13:03 +01:00
UbitUmarov 4ab8da01bc flush sslstreams in keepalive case ( should not be needed but well ) 2020-04-16 01:51:57 +01:00
UbitUmarov bdddedc550 let samplemoneymodule see EconomyModule config setting 2020-04-16 01:40:39 +01:00
UbitUmarov e859985cfa actually commit the uri fix 2020-04-15 21:23:13 +01:00
UbitUmarov 7572a60993 avoid a null ref on get log level 2020-04-15 11:48:52 +01:00
UbitUmarov a6abc3d2b6 mantis 8688: fix uri parsing in secure case ; add tls11 and tls12 to list of protocols (.net.46 ones) 2020-04-15 11:48:03 +01:00
UbitUmarov 944f3dd7ec sleep a script by 1second on non fatal OSSL errors 2020-04-14 17:01:35 +01:00
UbitUmarov f20845c89e sleep a script by 1second on non fatal LSL errors 2020-04-14 16:56:53 +01:00
UbitUmarov 8baab939d2 oops fix query handling on getassets 2020-04-13 15:37:12 +01:00
UbitUmarov 920a26eeec add request QueryFlags 2020-04-13 15:01:04 +01:00
UbitUmarov b419f71a68 also expose the request client IP as seen by server port 2020-04-13 14:34:03 +01:00
UbitUmarov e0ba96055c change osrequest Query back to hashtable, add QueryAsDictionary as new better option. (recover compatibily with current external modules 2020-04-13 14:24:22 +01:00
UbitUmarov 745a469af8 fix recent bug on Urlmodule 2020-04-13 13:53:37 +01:00
UbitUmarov d1f1324a2d update scriptSyntax 2020-04-12 23:19:34 +01:00
UbitUmarov bbc5d5bc2d ate least one viewer for androide does not decode correctly llsd, go back send more useless data, to suport them. this should be reverted one day 2020-04-12 18:10:20 +01:00
UbitUmarov f95925e0fd http server change remote endpoint handling 2020-04-11 19:57:34 +01:00
UbitUmarov 7ce9f890b1 http server useless changes 2020-04-11 16:41:39 +01:00
UbitUmarov 0d940df4e2 http server: change uri query handling 2020-04-11 15:18:49 +01:00
UbitUmarov 1c6d454691 remove excess garbage 2020-04-10 22:52:25 +01:00
UbitUmarov 6fea9dafaf yeack increase TimeoutMaxIdle again for now 2020-04-09 18:43:55 +01:00
UbitUmarov 50cd0ab982 missing file 2020-04-09 16:19:37 +01:00
UbitUmarov 0a1e1ae9e0 http asset send: prioritize baked textures 2020-04-09 16:18:27 +01:00
UbitUmarov 7ecc9408a9 flag baked texture assets 2020-04-09 16:08:44 +01:00
UbitUmarov 05c77f9342 cosmetics 2020-04-09 14:01:15 +01:00
UbitUmarov c99014991b cosmetics 2020-04-09 13:41:41 +01:00
UbitUmarov 523d6dd2da stop a vivox error 2020-04-08 16:38:07 +01:00
UbitUmarov f976d10de2 more changes on http server low level 2020-04-08 14:35:31 +01:00
UbitUmarov f0f067d05c missing file 2020-04-08 00:09:23 +01:00
UbitUmarov b4eb5d6cca send parcels onwership change updates to all avatars that may want it 2020-04-08 00:01:05 +01:00
UbitUmarov 29f59fe407 reduce httppipeline depth 2020-04-06 16:53:28 +01:00
UbitUmarov 3989dbac31 fix rez time on inworld object copy 2020-04-06 12:02:36 +01:00
UbitUmarov 0a4232430b remove some dead code 2020-04-03 03:54:32 +01:00
UbitUmarov 50b8c90b42 change response m_body send (currently not in use) 2020-04-03 03:20:47 +01:00
UbitUmarov f1761a5b6c remove a log message under cond comp 2020-04-02 23:05:22 +01:00
UbitUmarov 4af5dfa0d0 update a license file 2020-04-02 22:33:25 +01:00
UbitUmarov 1e083c38ad nissing files 2020-04-02 21:54:18 +01:00
UbitUmarov fe9df55410 nissing files 2020-04-02 21:52:31 +01:00
UbitUmarov 67cd5efab3 replace external httpserver by embedded one (based on same code) - This may still be very bad; clean solution and runprebuild, or clone to clan folder 2020-04-02 21:44:34 +01:00
UbitUmarov 650b051cdf httpserver send now has priority, use it 2020-03-31 22:03:43 +01:00
UbitUmarov 817c2b3bb9 httpserver send is now async 2020-03-31 22:01:45 +01:00
UbitUmarov e558dd3ac6 update httpserver.dll this needs testing. May not be that nice... 2020-03-31 21:43:40 +01:00
UbitUmarov ef49ac7049 do hide hidden groups on profile 2020-03-30 18:18:36 +01:00
UbitUmarov 2e66f8dbdf store sop pseudocrc and region cacheID on sqlite 2020-03-28 16:18:31 +00:00
UbitUmarov 0958eceadd store sop pseudocrc and region cacheID on PGSQL ( others later) 2020-03-28 01:31:00 +00:00
UbitUmarov 87646f340b store sop pseudocrc and region cacheID on mysql ( others later) 2020-03-27 17:34:05 +00:00
UbitUmarov 1002987aea invalidate region cacheid on oar load 2020-03-27 17:27:54 +00:00
UbitUmarov 918f56d682 fix lludp to read pseudocrc from SOP; move region cacheID to region settings 2020-03-27 17:26:49 +00:00
UbitUmarov 8e6fc69a11 let pseudoCRC (for objcache) be per part and not just per SOG 2020-03-27 17:22:18 +00:00
UbitUmarov 0a4a3199f5 update libomv again (arm issues) 2020-03-20 21:09:00 +00:00
UbitUmarov f1204e2147 contrary to some docs, PROCESSOR_ARCHITECTURE is not defined on linux 2020-03-20 16:18:36 +00:00
UbitUmarov 9ce4b8914b LevelUpload setting is now on [Permissions], so look for it there also 2020-03-20 10:54:10 +00:00
UbitUmarov 010f091dd4 mantis 8675: delay material delete (the reported log message may still happen, but less 2020-03-20 10:50:56 +00:00
UbitUmarov 9864d1abfc tell detected endian also 2020-03-18 19:09:59 +00:00
UbitUmarov f2c0957f5a update libomv 2020-03-18 18:46:54 +00:00
UbitUmarov ac43124a93 duhhh 2020-03-18 17:59:35 +00:00
UbitUmarov 59d3f9fa62 log processor arch 2020-03-18 17:41:29 +00:00
UbitUmarov 5401e323dc update libomv 2020-03-18 14:42:14 +00:00
UbitUmarov cfef190424 mantis 8674: give up asking viewers to use htts on vivox. Several just fail 2020-03-15 22:13:31 +00:00
UbitUmarov 63c5da539f minor change to legacy mesh stream cost estimation, so small lowest lod does not give excessive contribution 2020-03-15 17:47:27 +00:00
UbitUmarov 5f76a62d29 cosmetics 2020-03-13 21:27:57 +00:00
UbitUmarov b292950b1c fix a lock i missed.. 2020-03-11 16:04:02 +00:00
UbitUmarov beee52032e current vivox server certs are invalid 2020-03-10 13:42:09 +00:00
UbitUmarov c172adbaec minor patching to outdated vivox suport. This can't be updated without proper API spec, that vivox is refusing to provide to me 2020-03-10 03:52:38 +00:00
UbitUmarov e4f7a1c07a a few missing files 2020-03-07 21:13:42 +00:00
UbitUmarov 033f6f889d a few changes to flotsam asset cache 2020-03-07 20:34:56 +00:00
UbitUmarov 2e9417bd01 mantis 8670: replace bom fallback textures with ones havign alpha channel, now done with older j2k compressor 2020-03-07 20:30:24 +00:00
UbitUmarov cf5630f2f7 mantis 8670: replace bom fallback textures with ones havign alpha channel 2020-03-07 15:43:29 +00:00
UbitUmarov 3956fbe496 missed only line on last commit 2020-03-06 19:31:07 +00:00
UbitUmarov 98de42eedc flotsam: add comands deletedefaultassets to delete local default assets (on folder bin/assets) from cache so they can be refreshed from grid and cachedefaultassets to load those local assets into cache. This comands may cause desync with grid or other regions. Viewers will need to clear cache so see effects. Use with care 2020-03-06 19:20:12 +00:00
UbitUmarov 38b93a0f50 define Mr Opensim data on Constants 2020-03-06 16:00:40 +00:00
UbitUmarov abe26f39f6 yeackk silly bug on new avaterpickeravaterpicker 2020-03-05 00:00:08 +00:00
UbitUmarov 1df06f459a avoid duplicated udpbuffer free that may still happen 2020-03-04 22:39:44 +00:00
UbitUmarov 8728e4cf2f missing file 2020-03-04 20:04:08 +00:00
UbitUmarov ad601c9502 take lludp out of usermanagement module 2020-03-04 20:02:45 +00:00
UbitUmarov 20b974cff0 place the try/catch in right place on profiles process. This is still bad. Last code changes moved from blocking a user for a long time, to block profiles for all, for a long time. This because some viewers like firestorm, ask for the profiles of all user friends to show their ugly 1st life pictures. thats hundred requests taking from 500ms to more than 30s each 2020-03-04 17:19:12 +00:00
UbitUmarov ed34c00956 add catch log to profiles process 2020-03-04 04:50:54 +00:00
UbitUmarov d0ba9f84df add some async work to profiles module, take profile out of groups v2, not its job 2020-03-04 02:45:10 +00:00
UbitUmarov 248d56d3ad add LSL_Integer osClearObjectAnimations() to remove all animations on a prim, returning the number it had; some clean on sending 2020-03-03 23:21:05 +00:00
UbitUmarov 6684c35bb0 fix object animation updates when also moving 2020-03-03 22:25:24 +00:00
UbitUmarov 25b4a310f5 mantis 8668: invalidate part VOC on lsl scale change 2020-03-03 11:37:23 +00:00
UbitUmarov c30cb8a9cf change root part physics type none to apply physics 2020-03-02 04:05:18 +00:00
UbitUmarov be16cf9531 sync some more things with work copy 2020-03-02 01:56:34 +00:00
UbitUmarov 97cb6254ef cosmetics, rename a few vars, etc 2020-03-02 01:32:33 +00:00
UbitUmarov 904553cdb3 update libomv 2020-03-02 01:04:15 +00:00
UbitUmarov d3b1465444 mantis 8667: remove wildcards from a very limited test of a very limited thing 2020-03-02 00:07:02 +00:00
UbitUmarov cf948d56a1 pesty warning 2020-03-01 22:03:33 +00:00
UbitUmarov 7e9ce0929d missing file 2020-03-01 21:46:31 +00:00
UbitUmarov 693492a3f1 several changes to lludp FetchInventoryDescendents 2020-03-01 21:45:28 +00:00
UbitUmarov dc225e348d several changes to lludp FetchInventory 2020-03-01 18:56:07 +00:00
UbitUmarov 71b5ca95e6 change Async object delete to inventory threading model 2020-03-01 16:16:09 +00:00
UbitUmarov e76006aff5 avoid a null ref at shutdown 2020-03-01 03:22:58 +00:00
UbitUmarov 49386d34e5 pesty warning 2020-03-01 03:05:14 +00:00
UbitUmarov af7d09c6b5 more cosmetics (and possible more typos) 2020-03-01 02:27:48 +00:00
UbitUmarov 4d67fdfa9d cosmetics (and possible lots of typos) 2020-03-01 01:19:09 +00:00
UbitUmarov 3707301c59 changes to load oar with --merge: with option --mergeReplaceObjects it will replace objects already in region, without it, skip; with opetion merge-parcels will try to merge them, without it ignores oar parcels. as before without --merge all is replaced. renamed the options force* as merge* since they are merge suboptions 2020-02-28 18:36:52 +00:00
UbitUmarov 665037e366 cosmetics 2020-02-28 00:53:51 +00:00
UbitUmarov 22e201bb49 add harder restrictions to llGiveInventoryList. permissions per item as giveinventory, target avatar must see the prim region. Add 3seconds delay 2020-02-27 23:10:16 +00:00
UbitUmarov 7ef657c415 LSL add a translation layer btw lsl permitions and internal permissions 2020-02-27 21:37:23 +00:00
UbitUmarov d1df9c9ee5 some lsl cleanup 2020-02-27 21:07:35 +00:00
UbitUmarov 8c74e47557 a few changes to objects permissions 2020-02-26 20:33:29 +00:00
UbitUmarov c2ca5a699d missing file.. 2020-02-26 19:33:55 +00:00
UbitUmarov ad5aff2d17 more on scripts *target* events 2020-02-26 19:18:07 +00:00
UbitUmarov 94f88e330b one more case 2020-02-26 18:24:40 +00:00
UbitUmarov ea8eeaa307 do no append zero when clipping strings ( may still happen on other places) 2020-02-26 16:58:41 +00:00
UbitUmarov 7d7fc8f06a Yengine script, don't dispose twice 2020-02-26 05:17:46 +00:00
UbitUmarov 20d77d3905 mantis 8665: avoid crash at shutdown, that line should not be needed 2020-02-26 05:09:04 +00:00
UbitUmarov 771381558e index targets by scriptID 2020-02-26 04:50:55 +00:00
UbitUmarov 6dd5ea0c96 it is a good idea to actually change the respective source file... 2020-02-26 03:28:23 +00:00
UbitUmarov 828a3bb7f8 yeack, scripts can set targets, not having the events 2020-02-26 03:26:44 +00:00
UbitUmarov ca48bf4117 those events are per script not per part 2020-02-26 03:18:22 +00:00
UbitUmarov c9137912c9 missing file 2020-02-25 23:08:17 +00:00
UbitUmarov ceb9289f13 change (not)at_(rot)target checks 2020-02-25 23:02:38 +00:00
UbitUmarov d47ce25b5b change lsl say/whisper/shout text lenght limit 2020-02-24 05:57:54 +00:00
UbitUmarov 6cadcb8bdf try save a few ns on chat to objects 2020-02-24 05:37:42 +00:00
UbitUmarov df2536c407 try save a few ns on chat to avatars 2020-02-24 05:36:05 +00:00
UbitUmarov 1de010e969 change pending messages for scripts listeners queue type 2020-02-24 03:06:35 +00:00
UbitUmarov 72d38b267e small text format change 2020-02-24 03:01:46 +00:00
UbitUmarov 5f232077a7 give a tiny more time for deattach event to trigger 2020-02-24 03:00:09 +00:00
UbitUmarov 270a3e3836 do release controls on some objects delete 2020-02-21 19:19:19 +00:00
UbitUmarov c887446b7e sog DelinkFromGroup: change order of some operations 2020-02-21 19:15:08 +00:00
UbitUmarov 60a924f3c6 change part inventory adding some scripts speed up and controls release 2020-02-21 19:11:29 +00:00
UbitUmarov 0e6a7c3dac cosmetics 2020-02-20 21:50:07 +00:00
UbitUmarov 6c94f5d432 fix HandleRevokePermissions() 2020-02-20 08:29:09 +00:00
UbitUmarov 7c977f9e27 fix release controls on deattach 2020-02-20 08:27:42 +00:00
UbitUmarov d7671f3c01 a few changes to script engines releasecontrols 2020-02-20 08:20:15 +00:00
UbitUmarov 8d8b5b756f mantis 8663: add CertificateValidationCallback set. Thanks Manni 2020-02-18 20:23:14 +00:00
UbitUmarov 6d2bb27ef7 fix a test 2020-02-17 22:05:27 +00:00
UbitUmarov c8a95e21ee mysql region store: do not use double to store float 2020-02-17 21:11:21 +00:00
UbitUmarov b9cf2244a4 stop some log spam on shutdown that happens on linux 2020-02-17 17:54:56 +00:00
UbitUmarov c11249f1ca yeack ... // is not a ini file comment 2020-02-17 14:53:39 +00:00
UbitUmarov 23aae75563 add osslDefaultEnable.ini and osslEnable.ini.example. Similar use as opensimDefaults and opensim. Second files do local overrides to defautl settings. This should easy upgrades to versions that are compatible (most cases). (Dan Banner idea and request) 2020-02-17 00:53:30 +00:00
UbitUmarov e155ab7814 patch a test 2020-02-14 20:17:52 +00:00
UbitUmarov 59414467e2 several changes to (task)inventory offering 2020-02-14 19:47:57 +00:00
UbitUmarov 55333a5171 fix axis rotation on sog bounding box 2020-02-14 19:34:32 +00:00
UbitUmarov a42085f1a9 fix llGiveInventoryList notification on a group owned prim also 2020-02-13 05:20:00 +00:00
UbitUmarov 20a08c9f41 make a message more readable 2020-02-13 04:59:17 +00:00
UbitUmarov fa4602e048 improve TaskInventoryAccepted (that is also decline) 2020-02-13 04:58:20 +00:00
UbitUmarov 0e7c19e181 fix llGiveInventory notification on a group owned prim 2020-02-13 04:41:50 +00:00
UbitUmarov 75e5217fff fix a group owned permission 2020-02-13 02:58:32 +00:00
UbitUmarov e1d5892f78 notecards text len is in bytes not chars 2020-02-13 00:38:02 +00:00
UbitUmarov f3238781cc oops 2020-02-10 02:19:35 +00:00
UbitUmarov fb2380efd6 fix handling of materials maps clear and total removal with SLSL 2020-02-09 19:14:17 +00:00
UbitUmarov 11c49c211c change a log message 2020-02-08 19:03:24 +00:00
UbitUmarov c239269762 change uuids on scripts gather 2020-02-08 18:45:38 +00:00
UbitUmarov ce72aa2eac ignore some assets on gather 2020-02-08 17:45:51 +00:00
UbitUmarov b97237b513 missed another file 2020-02-08 16:31:23 +00:00
UbitUmarov 8cbe743440 missing file and remove dead code 2020-02-08 16:27:30 +00:00
UbitUmarov 68e7e65e2e scritps can not read notecards with embedded items 2020-02-08 16:09:12 +00:00
UbitUmarov 9478e607db fix a typo on useraccount store 2020-02-08 13:05:23 +00:00
UbitUmarov 22227fa0b8 reduce some more spam on log 2020-02-08 01:10:30 +00:00
UbitUmarov c2ab11a51e reduce some spam on log 2020-02-08 00:29:41 +00:00
UbitUmarov 169f161576 cosmetics 2020-02-07 22:44:14 +00:00
UbitUmarov 43fea6530f yeack, better not break other notecards HG; improve TestNotecardAsset() 2020-02-07 22:39:36 +00:00
UbitUmarov c245ce3c25 change string terminator check 2020-02-06 22:54:17 +00:00
UbitUmarov b2ef1545e5 oops, some fixes 2020-02-06 22:39:04 +00:00
UbitUmarov 88d91b68f7 TestNotecardAsset() does not even create a valid notecard. Disable it for now 2020-02-06 19:29:00 +00:00
UbitUmarov 8060d132b9 mantis 8651: try to improve notecards HG sharing ( not tested) 2020-02-06 19:16:23 +00:00
UbitUmarov 7a79a6ddfe mantis 8651: clean code a bit 2020-02-06 16:13:32 +00:00
UbitUmarov 4de3dc2860 mantis 8651: change embedded decode a bit 2020-02-06 15:27:53 +00:00
UbitUmarov 18f2e25b23 mantis 8651: try to fix items embedded in notecards. This may need more work 2020-02-06 06:12:51 +00:00
UbitUmarov 3196d2fa6f mantis 8547: allow volume detectors to tell detector prim link number. Note that this is not as spec, also that the name llDetectedLinkNumber should actually be llDetectorLinkNumber since it refers to the detector not detected object 2020-02-03 13:25:00 +00:00
UbitUmarov 662c41ddee clear sell data when selling a object copy 2020-02-02 20:16:33 +00:00
UbitUmarov a22acd1c5c remove a few more references to simianGrid 2020-02-02 17:31:43 +00:00
UbitUmarov 9a5844fdb9 remove folder addin-db-002 on runprebuild 2020-02-02 17:01:27 +00:00
UbitUmarov 441b4e01f6 remove also caps with method DELETE; NOTE: to update existent regions with last commit you need to clean the solution, run prebuild, and delete folder bin/addin-db-002 2020-02-02 16:37:45 +00:00
UbitUmarov 941b65b44a removed outdated suport for simianGrid. Simian was a web/php alternative to Robust (https://code.google.com/archive/p/openmetaverse) 2020-02-02 16:18:08 +00:00
UbitUmarov fdecf80016 mantis 8654: exclude NPCs from some Friends ops 2020-02-01 15:26:58 +00:00
UbitUmarov 016886b3c6 changes on sqlite estatedata 2020-01-31 13:09:37 +00:00
UbitUmarov f89afd2aa8 fix some sqlite regionstore tables 2020-01-31 00:08:51 +00:00
UbitUmarov fb1911d409 revert 8cc02916ab. allow physics sit on
phanton to fall back to ugly sit because some objects depend on it
2020-01-29 21:23:30 +00:00
UbitUmarov 8075c1e363 do store UserCountry 2020-01-28 19:49:45 +00:00
UbitUmarov 53c9473100 mantis 8653 fix npc movement updates 2020-01-28 15:45:47 +00:00
UbitUmarov 76987fb647 ... osSetLinkStandTarget 2020-01-25 15:51:36 +00:00
UbitUmarov 8df27ba2a1 forgot again sintaxe 2020-01-25 15:32:03 +00:00
UbitUmarov 868c05fdf6 why not also osGetLinkStandTarget 2020-01-25 15:29:59 +00:00
UbitUmarov 5bb96cf18e update sintaxe 2020-01-25 14:26:00 +00:00
UbitUmarov 004cab9289 add osGetLinkSitActiveRange 2020-01-25 14:24:53 +00:00
UbitUmarov 64c7e1de5b add osSetLinkSitActiveRange 2020-01-25 13:32:52 +00:00
UbitUmarov 598ba5d6ae fix the dbs migrations 2020-01-23 11:14:12 +00:00
UbitUmarov f61b83b1ea store the new variables on sqlite and pgsql ( could not test) 2020-01-23 10:47:09 +00:00
UbitUmarov 2a38210fe9 serialize the new variables 2020-01-22 22:01:05 +00:00
UbitUmarov 33eabf1069 store the new variables on mysql 2020-01-22 21:32:40 +00:00
UbitUmarov da0ba17d1a fix bug on sit active range check 2020-01-22 21:19:38 +00:00
UbitUmarov 59f41598db limit unscripted and not done by physics sits to 10m distance again 2020-01-22 18:37:32 +00:00
UbitUmarov 7adaede14a mantis 8634: add osSetSitActiveRange(float range) , osSetStandTarget(vector feetAproxPosition) and respective get functions. range <0 disables sits on the prim, = 0 uses region default,feetAproxPosition is in prim local frame. <0,0,0> disables it. Still no persistance. feedback required! 2020-01-22 18:23:35 +00:00
UbitUmarov 8db60ba3aa back to sits and stands 2020-01-22 00:15:23 +00:00
UbitUmarov 8cc02916ab don't let physics sit on phantom fall back to ugly default 2020-01-20 19:26:12 +00:00
UbitUmarov 3f601c9267 don't allow viewer to change rotation on sit 2020-01-20 19:01:15 +00:00
UbitUmarov 0bd102a397 tell viewers to autopilot on sit, but bypass it, so camera does get set 2020-01-20 18:25:59 +00:00
UbitUmarov 0e1e247289 ok ok reduce stand jump a bit 2020-01-20 16:12:59 +00:00
UbitUmarov b70d44eb7e try to cache cof is a waste of time 2020-01-20 16:11:20 +00:00
UbitUmarov 80fe0c640b do not use viewer autopilot on physics sits also. Viewer side autopilot needs more work to avoid desyncs, that we never had 2020-01-20 16:09:45 +00:00
UbitUmarov 54370169bc remove usage of lludp highpriority send queue. It causes more issues than good 2020-01-20 16:01:21 +00:00
UbitUmarov ad6499cc09 fix last log message, and change things a bit 2020-01-20 11:48:32 +00:00
UbitUmarov ddef089eaa catch more error exception cases on fetchinventory req parsing 2020-01-19 20:10:08 +00:00
UbitUmarov f85e932f59 oops i still did not updated libomv with new flag name 2020-01-19 16:44:27 +00:00
UbitUmarov ba174b777c send allowaccessoverride flag on regionhandshake 2020-01-19 16:30:02 +00:00
UbitUmarov 28db80f100 mantis 8647: try to not lose materials on fast objects take, but without changing a lot of files 2020-01-19 00:31:28 +00:00
UbitUmarov 8db2ddb07f mantis 8645: change sqlite to just flag row delete, for commit to work 2020-01-18 21:09:41 +00:00
UbitUmarov 550f64cb2d mantis 8645: change sqlite (not exactly as provided patch) 2020-01-18 18:01:38 +00:00
UbitUmarov 2b2b5d8bff update httpserver.dll 2020-01-18 14:53:47 +00:00
UbitUmarov 5ad62558b3 mantis 8643: invert the meaning of internal flag TEXFREE true value to mean NOT allow parcel owner to be more restrictive than estate. This should reduce the impact of this feature on new and current regions, specially since some viewers still do not suport it. (yes still lazy to rename the thing) 2020-01-17 09:35:42 +00:00
UbitUmarov 1899a36105 add another kick to GC after map generation at run time 2020-01-13 18:46:25 +00:00
UbitUmarov 62f3892cd7 add a real transparent texure for default transparency and avatar alphas transparency. Asset 3a367d1c-bef1-6d43-7595-e88c1e3aadb3 must be rempoved by hand from current regions cache (at bin/assetcache/3a3) and viewers cache clean 2020-01-12 21:29:25 +00:00
UbitUmarov 6f5b7957a9 fix attachment point changes detection 2020-01-12 10:45:10 +00:00
UbitUmarov f417a647db exclude NPCs on adults and anonymous parcel access check 2020-01-11 17:32:33 +00:00
UbitUmarov c2cef470f5 Estate age and payment (anonimous) access control override parcel settings. Enforce it at parcel level (a bit heavy for now, needs revison) 2020-01-11 16:26:56 +00:00
UbitUmarov b9e74dd504 change IgnoreEstatePaymentAccessControl and IgnoreEstateMinorAccessControl default to true, since this require flags to be set on dbs, and enforcing was not working well 2020-01-11 16:16:49 +00:00
UbitUmarov 29a6c1d0c8 fix IgnoreEstatePaymentAccessControl option 2020-01-11 14:57:43 +00:00
UbitUmarov ea7dd150b1 disable parcels access control if disabled at estate ( not that estate flag is still named TAXFREE 2020-01-11 14:11:46 +00:00
UbitUmarov d92ef598c5 EstateAccess get: do send empty arrays 2020-01-11 12:58:46 +00:00
UbitUmarov ac32188978 add a silly GatekeeperURIAlias example 2020-01-10 01:44:10 +00:00
UbitUmarov 5dbcb7a99e add config option GatekeeperURIAlias to list other FQDN or ips of same local grid 2020-01-10 01:38:41 +00:00
UbitUmarov 42afa8429e mantis 8639: recover object selected state in case of lludp object updates packet size overflow; 2020-01-08 10:25:59 +00:00
UbitUmarov c54460b6f0 update release notes url 2020-01-07 17:30:23 +00:00
UbitUmarov d9d763c8f8 change version 2020-01-07 15:18:49 +00:00
UbitUmarov 7bdc408cac change some lsl flag constants to Hexa 2020-01-07 14:51:07 +00:00
UbitUmarov 066a6fbaa1 changes on lludp acks and resends 2019-12-18 23:26:13 +00:00
UbitUmarov 7516288634 missing files 2019-12-16 16:12:04 +00:00
UbitUmarov 60473ff44e update libomv 2019-12-16 16:05:46 +00:00
UbitUmarov 8c21b30a51 do dispatch RequestLure ims 2019-12-16 01:27:49 +00:00
UbitUmarov d400b2c545 add a formal lock object 2019-12-10 12:36:29 +00:00
UbitUmarov 449bd9beab enforce invariant culture on landmarks 2019-12-10 12:33:56 +00:00
UbitUmarov 052e4a060c mantis 8632: stop trigering Changed on just scale checks 2019-12-03 14:27:31 +00:00
UbitUmarov 5c5e4bd830 a few changes on check targets for lsl 2019-11-27 16:44:45 +00:00
UbitUmarov b3db90db92 and yes mono-addins .... 2019-11-24 20:08:00 +00:00
UbitUmarov bd15005d77 and yes mono-addins again 2019-11-24 18:43:50 +00:00
UbitUmarov e8d1493777 mantis 8631: and another try... 2019-11-24 11:40:04 +00:00
UbitUmarov 17e4b52171 mantis 8631: the missing file 2019-11-24 11:09:25 +00:00
UbitUmarov 9aa0f21ffa mantis 8631: mono addins again (one file missing) 2019-11-24 11:07:55 +00:00
UbitUmarov 6e2b5ac238 fix identation 2019-11-23 01:21:36 +00:00
UbitUmarov 14270e316a fix xml decode of kfm in single prims case 2019-11-23 01:17:03 +00:00
UbitUmarov 2a508edcb4 YEngine: change some startup log messages 2019-11-22 07:42:00 +00:00
UbitUmarov 943d0935a6 YEngine, change default number of exec threads to 2 of priority Normal. Let the threads priority a option on ini files 2019-11-22 07:01:17 +00:00
UbitUmarov d5f918f945 Oooopss 2019-11-22 06:07:28 +00:00
UbitUmarov 9b7ad30ee1 more changes on YEngine scripts heap usage 2019-11-22 04:09:05 +00:00
UbitUmarov 647622bb02 cosmetics 2019-11-20 23:29:24 +00:00
UbitUmarov bd12d60e80 cosmetics 2019-11-20 23:16:20 +00:00
UbitUmarov 0cf3ec553a fix the block of teleport to same region handle 2019-11-18 20:17:48 +00:00
UbitUmarov 730a35eedc Yengine: more on constants operations reduction 2019-11-18 19:07:03 +00:00
UbitUmarov bf0697d5f4 mantis 8551: Simplify Yengine heap usage control 2019-11-18 17:33:02 +00:00
UbitUmarov 496a2228f5 update mono addins again 2019-11-18 04:13:46 +00:00
UbitUmarov b5d2a6088c revert to previus ICSharpCode.SharpZipLib.dll that was .net4.6 unlike new one 2019-11-18 03:49:57 +00:00
UbitUmarov 3708f504a6 fix a info message 2019-11-18 03:18:23 +00:00
Diva Canto 72362dd09c Mono addins uses this, and the version was now incompatible. 2019-11-17 15:19:15 -08:00
Crista Lopes 9fd2b239d9 Replaced mono addins dlls and mautil.exe with the patch 2019-11-17 14:33:00 -08:00
UbitUmarov 7dd5c9ccad update mono addins ( need to runprebuidl and recomp opensim) 2019-11-17 21:40:02 +00:00
UbitUmarov 103ebac082 terrain: make sure modify does get unblocked 2019-11-17 15:01:21 +00:00
UbitUmarov 61f918cbda remove some llUDP options 2019-11-16 22:19:46 +00:00
UbitUmarov cb97ab5c6f make attachments WearReplacesAll option visible 2019-11-14 22:34:39 +00:00
UbitUmarov 45625a02a2 update contributors 2019-11-14 06:49:13 +00:00
UbitUmarov 31aef4e82b work on previus 2 patchs 2019-11-14 06:34:44 +00:00
Terry 999a068172 Complete PostGres from previous commit - (Not Tested)
Signed-off-by: Terry <terry@digiworldz.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2019-11-14 05:28:57 +00:00
Terry 2f79f463ea Attempt to fix the issue where, when logging into the grid, the user supplies a region name, but instead of going to the specific region, they are sent to a region "Like" the one specified.
Signed-off-by: Terry <terry@digiworldz.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2019-11-14 05:26:54 +00:00
UbitUmarov eabf9a7c04 mantis 8627: handle the case constant compareOp constant on Yengine 2019-11-13 23:26:22 +00:00
UbitUmarov d9d78c3423 Terrain: more double to float 2019-11-13 19:53:15 +00:00
UbitUmarov 5d2ffdc35b limit max number of attachments to 38. All can be on same point 2019-11-13 18:44:58 +00:00
UbitUmarov 2828aa3e9b Reduce Max region size to 4096m 2019-11-13 18:00:45 +00:00
UbitUmarov 8fcecc93a6 missed a few 2019-11-12 18:24:56 +00:00
UbitUmarov d10f11d310 terrain replace double by float 2019-11-12 18:19:12 +00:00
UbitUmarov 9eb5fd4330 more changes on terrain edit. Silent ignore comand if busy (large area smooth can take ages), brush changes, etc 2019-11-12 03:16:53 +00:00
UbitUmarov 01832b3e3c missing file, of course 2019-11-11 12:54:42 +00:00
UbitUmarov e87dfd48bf Yengine: we also need to cancel timer events in queue, because some bad scripts that do work on X 2019-11-11 12:51:09 +00:00
UbitUmarov 38a77a8bb5 terraforming changes: try recover llmodifyland previus behaviur 2019-11-10 21:12:52 +00:00
UbitUmarov ee68085628 SIO_UDP_CONNRESET should work on macs now, thx Gavin 2019-11-10 19:14:12 +00:00
UbitUmarov 435c30c038 terraforming changes: comment a debug message 2019-11-10 04:37:41 +00:00
UbitUmarov b4d9f7ffe8 terraforming changes: support selected parcel edit; fix area smooth 2019-11-10 02:48:54 +00:00
UbitUmarov f6ea22647d terraforming changes: make jenkis happy 2019-11-10 00:47:40 +00:00
UbitUmarov 727216044b terraforming changes: missing file 2019-11-10 00:03:39 +00:00
UbitUmarov 53339d2970 terraforming changes: make sliders work, remove some brushs, etc. Feedback needed (run prebuild) 2019-11-09 23:59:19 +00:00
UbitUmarov 4b5a3308ad cosmetics 2019-11-08 17:43:22 +00:00
UbitUmarov ca4bb8c492 let autopilot also stand from a object 2019-11-07 03:53:05 +00:00
UbitUmarov bd9f6ae3f0 avoid a null ref 2019-11-07 03:01:07 +00:00
UbitUmarov 8ed0680bb9 handle null refs on llSubStringIndex() 2019-11-06 23:40:53 +00:00
UbitUmarov 926e4ea95e mantis 8624: replace native code libs for Mac by ones signed by Geir Nøklebye (Gavin Hird). Ths again Gavin 2019-11-05 15:39:44 +00:00
UbitUmarov 11a357d7fa YEngine: fix credits comment 2019-11-05 15:08:58 +00:00
UbitUmarov 040c8d5e9a dynamic textures: add ' lossless: [true|false] ', default false, extraParam 2019-11-04 20:17:12 +00:00
UbitUmarov 21f86c453d YEngine: fix wrong language detection on some comments in first line 2019-11-04 17:22:42 +00:00
UbitUmarov bae7b21e87 update libopenmetaverse ( attach points) 2019-11-04 10:44:29 +00:00
UbitUmarov f2cf3b201b avoid a null ref 2019-11-02 21:53:12 +00:00
UbitUmarov 26b5affb04 FlotSamAssetcache write to disk needs be sync. 2019-11-01 15:00:22 +00:00
UbitUmarov 3236e24c74 a disabled module has no caps to tell viewers (cameraonlymoduel) 2019-10-31 16:41:28 +00:00
UbitUmarov 5a3ba2afbb always allow part deselect 2019-10-30 04:46:47 +00:00
UbitUmarov 9d6a1e01f9 fix some mysql timestamps default value 2019-10-29 22:55:51 +00:00
UbitUmarov defa235859 update server release notes default URL 2019-10-29 14:37:41 +00:00
UbitUmarov 4797f8210c update version name 2019-10-28 16:41:26 +00:00
UbitUmarov b073d2ae6b change version 2019-10-28 11:28:00 +00:00
UbitUmarov 3c4bc681c3 refuse to create a new user with empty password 2019-10-24 17:40:39 +01:00
UbitUmarov bf2e0f7737 oops, dont ask things twice 2019-10-24 17:30:24 +01:00
UbitUmarov be6080c3c8 partial revert console Prompt code to fix it 2019-10-24 17:07:59 +01:00
UbitUmarov 46e36601cb remove some more useless NULL arguments 2019-10-22 13:04:01 +01:00
UbitUmarov da0a8d6c43 remove some more useless NULL arguments 2019-10-22 12:39:50 +01:00
UbitUmarov b98ad6c53c remove some useless NULL arguments 2019-10-22 12:23:19 +01:00
UbitUmarov d838a7e5c7 missing file 2019-10-22 12:04:32 +01:00
UbitUmarov 7939974d92 try to fix console AGAIN 2019-10-22 11:55:27 +01:00
UbitUmarov 7f8d5bbdce a few changes on osslEnable.ini 2019-10-21 11:34:32 +01:00
UbitUmarov a7f8412644 a few changes on osslEnable.ini 2019-10-21 11:25:40 +01:00
UbitUmarov 656ea163cc a few changes on LlGetObjectDetails 2019-10-20 10:55:13 +01:00
UbitUmarov ab335b5926 add a few lsl constants 2019-10-19 18:00:45 +01:00
UbitUmarov 7ed339324f same for osSetDynamicTextureURLBlendFace(). thx djphil 2019-10-19 11:49:46 +01:00
UbitUmarov 24b1e84eca change osSetDynamicTextureURL(Blend) to ThreatLevel.VeryHigh,ESTATE_MANAGER,ESTATE_OWNER 2019-10-19 09:59:26 +01:00
UbitUmarov 9d698bcffb Xengine: more on division by Zero 2019-10-18 15:02:32 +01:00
UbitUmarov f09a18a7a8 Yengine: Also error on division by Zero 2019-10-18 14:16:37 +01:00
UbitUmarov 2a90f78fe1 add LSL_Integer osIsNotValidNumber(LSL_Float v) 2019-10-17 23:33:11 +01:00
UbitUmarov d6abf2a2fe simplify last code a bit 2019-10-17 22:40:54 +01:00
UbitUmarov 53c39bf25f Xengine: Error on division by Zero. Yengine will take a lot more work. If your script gets killed by this, don't bother us, your script is just BAD 2019-10-17 21:35:34 +01:00
UbitUmarov 6b930a596b Yengine make float.tostring culture invariant 2019-10-17 19:40:54 +01:00
UbitUmarov 5971021b5d tests: windows does not have 1ms time resolution 2019-10-16 20:16:59 +01:00
UbitUmarov 0587dd38dc fix some texts init 2019-10-16 20:09:31 +01:00
UbitUmarov 96553ecc11 minor text change 2019-10-16 15:47:55 +01:00
UbitUmarov 1a21ab1938 minor text change 2019-10-16 14:54:25 +01:00
UbitUmarov 45ad812457 minor text change 2019-10-16 14:45:04 +01:00
UbitUmarov b87301f692 typo 2019-10-16 14:04:20 +01:00
UbitUmarov 43bf3af138 OSSL: threading issue 2019-10-16 13:53:55 +01:00
UbitUmarov 2abf375351 OSSL: stop reading configuration file on every script start. 2019-10-16 13:42:11 +01:00
UbitUmarov c7714d6320 make OSSL parsing error warning more clear 2019-10-16 13:05:30 +01:00
UbitUmarov 0e3f24a67e change OSSL functions allow control code. Behavior should stat pretty much the same. Some help testing, please 2019-10-16 12:24:07 +01:00
UbitUmarov d79d7e228a add OSSL option PermissionErrortoOwner (true or false). if true ossl functions permission errors will only be sent to prim owner, defaul false: send all around 2019-10-16 00:08:45 +01:00
UbitUmarov 77126cee00 change coments on osslEnable.ini and remove list of functions always suported; 2019-10-15 22:57:30 +01:00
UbitUmarov 23587391f8 basic search: fix people search, add some caching 2019-10-14 11:32:00 +01:00
UbitUmarov 6d1ad6acd5 viewers group search page size is 100 ( and not way to detect other value, so hardwired) 2019-10-13 19:11:21 +01:00
UbitUmarov 5bbaea50e4 groups v2: remove wrong filters on DB search 2019-10-13 18:52:33 +01:00
UbitUmarov 0273baaef6 mantis 8598: filter dead groups from group search. honor querystart request. Viewers are very broken on this, seems protocol was made by someone with no idea about lludp 2019-10-13 16:41:38 +01:00
UbitUmarov 2c1909a873 add osResetAllScripts(LSL_Integer AllLinkset). use with care 2019-10-11 00:01:59 +01:00
UbitUmarov 55d70f5df7 update livomv 2019-10-08 06:31:39 +01:00
Melanie be34b8e79d Fix build break 2019-10-06 23:57:47 +01:00
Melanie eb55f7f2bc Introduce a way to send the grid's message kay, if one is used 2019-10-06 23:24:41 +01:00
Melanie 22599fbf29 Remove a no longer used property that used ScopeID in an improper way 2019-10-06 19:51:46 +01:00
Melanie aed0eaf4d7 Fix an issue where parameter parsing could lead to an exception 2019-10-06 19:51:13 +01:00
UbitUmarov 1b70b569ad explicitly remove useragentserviceconnector dns lookup, effectively removed on a previus commit. This should not be needed with required mono versions and proper configured DNS (that must honour short TTL needed by dynamic DNS ); add some uri validation 2019-10-06 18:24:06 +01:00
UbitUmarov c5e2afa9f8 remove useragentserviceconnector dns lookup also on ossl 2019-10-06 17:09:49 +01:00
Melanie 09d8da7e77 Merge branch 'master' of brain.opensimulator.org:/var/git/opensim 2019-10-06 16:12:54 +01:00
Melanie abdc78d6d3 Stop replacing the host name with it's IP.
Mono DNS resolution is now configurable elsewhere.
Resolving the IP ahead of time causes requests to
be made by IP. If NginX is used to distribute requests
to services by name, this breaks HG teleports.
2019-10-06 16:10:57 +01:00
UbitUmarov 03da5a9714 fix ViewerAsset external url 2019-10-06 02:21:29 +01:00
UbitUmarov 39aa27af2b missing file 2019-09-24 00:26:59 +01:00
UbitUmarov 27a40461e2 do removed the old API function (replaced in 2016). Thanks Terry for finding this old Bug 2019-09-23 16:29:33 +01:00
UbitUmarov 64834a880d fix a HGsuitcase API 2019-09-23 15:59:15 +01:00
UbitUmarov 43b56eaf08 make Console Promt(..) compatible with rest of code, again 2019-09-21 16:59:41 +01:00
UbitUmarov b046ccebf2 make Console Output(..) compatible with rest of code, again 2019-09-21 16:35:38 +01:00
UbitUmarov d7bf623f57 add a missing return 2019-09-18 19:09:48 +01:00
UbitUmarov 63239402ae fix wrong lludp message usage 2019-09-18 18:43:45 +01:00
UbitUmarov 24a977323b avoid a null ref ( this should not be needed) 2019-09-18 05:27:25 +01:00
Robert Adams 4161182be0 Update the Newtonsoft JSON manipulation DLL to latest version (v12.0.3-beta1). 2019-09-17 19:35:05 -07:00
Robert Adams 9956f5cb4a Changes fix some CORS problems when making XMLRPC calls from
browsers (which have gotten very picky over the years).
Add "Access-Control-Allow-Origin" to XMLRPC responses.
Add "Access-Control-Allow-Methods" and "Access-Control-Allow-Headers" to
    the HTTP OPTIONS response (used in CORS pre-flight request).
2019-09-17 19:30:30 -07:00
UbitUmarov 645c0c780d add a extra lenght check 2019-09-17 20:43:55 +01:00
UbitUmarov 63b0bd7f6b fix saving appearence to notecard, so they can work on older regions 2019-09-15 16:49:58 +01:00
UbitUmarov 85aa77566b allow particles scale max to be 7.96m, supported by protocol 2019-09-12 00:25:52 +01:00
UbitUmarov 5f1fde5f38 fix bad indexes math 2019-09-11 15:52:26 +01:00
UbitUmarov 0bef393b6b fix a bad typo 2019-09-11 15:24:28 +01:00
UbitUmarov 025fc98262 take unit tests limited settings in consideration on setappearance 2019-09-11 15:08:09 +01:00
UbitUmarov ecfa3cf7dc pesty warning 2019-09-11 14:09:55 +01:00
UbitUmarov aea5f186c5 remove a config option that controled a useless sim feature. note that at this point, and as normal on master, appearence/bakes etc may have a few more issues than before, as always thanks for your help testing it, and hapy clouds 2019-09-11 14:03:25 +01:00
UbitUmarov 07874fa058 enable agent hover again, (it is still bad on most viewers for opensim 2019-09-11 13:54:14 +01:00
UbitUmarov 9d6c996570 extent supported number of avatar textures/bakes/wearables, tell viewers about it on lludp RegionHandShake; propagate agenthover; block teleports/crossings based on worn wearables and peer version; 2019-09-11 13:51:43 +01:00
UbitUmarov 6aa369d858 disable AvatarHoverHeight useless and viewer side broken (without SSA) 2019-09-09 15:52:50 +01:00
UbitUmarov 304d72565d fix a HG to local grid tp extra check 2019-09-07 01:25:32 +01:00
UbitUmarov f835960d17 go back to protocol 0.7, until 0.8 changes are ready 2019-09-05 00:23:47 +01:00
UbitUmarov 93f13aa00d add osSlerp() 2019-09-04 23:27:48 +01:00
UbitUmarov 7771cc00c4 don't wear vegetables 2019-09-04 13:58:38 +01:00
Melanie 3d019323e8 Cache assets even in cases where the upload fails. That helps in asset upload debugging because the asset can be examined 2019-09-04 11:01:27 +01:00
UbitUmarov bfc1756fe3 fix the fix 2019-09-04 09:38:52 +01:00
UbitUmarov c4904de6a7 fix one of the new warp3d log messages 2019-09-03 21:28:06 +01:00
UbitUmarov fc550e2b3e avoid potencial null ref 2019-09-03 15:21:25 +01:00
UbitUmarov 3aae1d0918 mantis 8585: add a bit more debug messages 2019-09-03 15:19:36 +01:00
UbitUmarov 98b86c012e avoid a null ref 2019-09-03 02:22:08 +01:00
UbitUmarov fd252b1285 add a little more debug for now 2019-09-03 02:10:07 +01:00
UbitUmarov eedb0a1c85 missing file 2019-09-02 22:56:57 +01:00
UbitUmarov ae130d9f25 mantis 8580: make some changes on regions find code. (only gatekeeper
host is used on local grid detection, not its port)
2019-09-02 22:48:42 +01:00
UbitUmarov 38dbc03288 mantis 8585 change assets README 2019-08-31 15:36:18 +01:00
UbitUmarov 7cdce3e276 XbakesModule: allow more textures, older versions will not see 2019-08-31 15:01:15 +01:00
UbitUmarov 695821a93a update httpserver.dll reverting a change win does not seem to like 2019-08-31 05:44:14 +01:00
UbitUmarov 0bafb36aad restore a texture asset removed by mistake 2019-08-30 23:03:39 +01:00
UbitUmarov 694ad7d8bc increase region protocol version to 0.8 2019-08-30 13:04:58 +01:00
UbitUmarov 8938ae498f added some texture assets. Thx Ai Austin 2019-08-29 11:21:26 +01:00
UbitUmarov c0521482ce add a test sim feature 2019-08-29 09:08:45 +01:00
UbitUmarov 85b615309b update libomv with simpler Texture.GetBakesBytes 2019-08-29 08:52:16 +01:00
UbitUmarov 0e33014572 add a few lsl constants 2019-08-28 05:54:18 +01:00
UbitUmarov 450ae4a927 change appearance data sent to others 2019-08-28 04:36:17 +01:00
UbitUmarov 562ec0eed3 update libomv 2019-08-28 04:33:55 +01:00
UbitUmarov 7a82f9ef9f mantis 8470: add constant PrivURL. Thanks Ai Austin 2019-08-27 22:32:26 +01:00
UbitUmarov 60fa28740a mantis 8583: update region information on Grid on map regeneration 2019-08-27 21:24:54 +01:00
UbitUmarov 718c6d1e4d mantis 8583: osGetRegionMapTexture(); now returns prim region map textureID, without any requests to grid 2019-08-27 21:16:22 +01:00
UbitUmarov ab92dff5be a few changes to db generic tables 2019-08-26 03:00:28 +01:00
Melanie 584df2ab38 Fix console outputting raw format strings 2019-08-25 23:07:14 +01:00
UbitUmarov c4e453d948 revert last change and o fix the damm silly bug 2019-08-24 23:33:05 +01:00
UbitUmarov 35e3c3dec4 reduce even more the number of objects per UDP packet on object cache related pkts ( TEST ) 2019-08-24 22:52:47 +01:00
UbitUmarov 030ad7f47a minor change on httpserver dll 2019-08-24 07:57:17 +01:00
Melanie 110644c23a Make ReadConfig a general features of consoles, rather than type dependent 2019-08-21 21:23:54 +01:00
Melanie 7e136c67fd Call SetServer on consoles reflectively to avoid having type checks in places where it tends to be forgotten to update them. 2019-08-21 21:15:58 +01:00
Melanie 0fd17c08ae Massive console refactor. Greatly simplify interface. 2019-08-20 23:28:59 +01:00
UbitUmarov f7a496136d change PGSQL migration 2019-08-19 12:28:17 +01:00
UbitUmarov 4acd07c0fa try again to update SQLite estateban 2019-08-18 20:53:35 +01:00
UbitUmarov 7f52bcbc7f try to update SQLite estateban 2019-08-18 20:35:24 +01:00
UbitUmarov d5db4b9d93 try to update PGSQL estateban 2019-08-18 20:24:19 +01:00
UbitUmarov a687c5fce9 oops... 2019-08-18 02:12:15 +01:00
UbitUmarov 6b868f8682 i do not not store banTime as DateTime, fix the EstateBan decoder 2019-08-18 00:33:23 +01:00
UbitUmarov 115d69e633 missing file 2019-08-17 23:59:01 +01:00
UbitUmarov db374112c6 EstateAccess do fill the fields(mySQL only); fix the response 2019-08-17 23:57:05 +01:00
UbitUmarov eb9cf78e6b EstateAccess: add some ban fields to fill one day 2019-08-17 20:41:49 +01:00
UbitUmarov 16bf737b26 minor update to osslEnable.ini 2019-08-17 19:29:37 +01:00
UbitUmarov 64c56fc52b mantis 8577: add key osGetInventoryItemKey(string name) to get a inventory item ID within prim inventory. the llGetInventory does return the asset it, not item. 2019-08-16 21:24:07 +01:00
UbitUmarov 9ddd2e842e move file HGworldMapModule to where it belongs( runprebuild) 2019-08-15 18:28:58 +01:00
UbitUmarov 7d0b37faec still another missing ShowNPCs case, and needed changes for prev commit 2019-08-15 18:01:51 +01:00
UbitUmarov 12abb3ffe4 make HGworldmap initialize its base wordmap 2019-08-15 17:59:57 +01:00
UbitUmarov 002ef3cd89 mantis 8575: npc map dots could be sent on another spot 2019-08-13 23:06:26 +01:00
UbitUmarov 4812833435 set default value for timestand on groups v2 invites table 2019-08-10 22:18:55 +01:00
UbitUmarov ffd5c5cc9c mantis 8573 and 8569: be more aggressive on drag block with touch on non physical prims 2019-08-10 13:58:11 +01:00
Melanie c9b7ec2af9 Make the DNS cache timeout configurable.
In containerized environments, DNS is simulated. It can change several
times per second as containers move around. The hardcoded timeout was
too long for a container environment.
2019-08-09 12:06:33 +01:00
Melanie f332f3fc41 Merge branch 'master' of brain.opensimulator.org:/var/git/opensim 2019-08-09 11:02:04 +01:00
Melanie 34816fe1ab No idea where this diff comes from - change case to lower 2019-08-09 11:01:19 +01:00
Melanie 0726ef5302 Fix #8572 2019-08-09 10:59:51 +01:00
UbitUmarov c043008e04 add cap EstateChangeInfo 2019-08-07 21:06:20 +01:00
Melanie c80926192a Make showing NPCs on the world map an option 2019-08-07 18:45:04 +01:00
Melanie 1a8c235d58 Remove debug output i left in 2019-08-07 18:30:08 +01:00
Melanie Thielker c3e74d9e04 Put a scope un users. Should fix Unknown UserUMMAU43 unless the user IS unknown 2019-08-07 18:22:13 +01:00
Melanie ba680ceecb Merge branch 'master' of brain.opensimulator.org:/var/git/opensim 2019-08-07 17:58:55 +01:00
Melanie d781742d8e Fix scope support to get friends list names across co-hosted grids 2019-08-07 17:58:08 +01:00
UbitUmarov 21aa26d796 cap EstateAccess: don't meed with keepAlive unless needed 2019-08-07 17:39:17 +01:00
UbitUmarov 8d1c12dfad pesty warning; btw thx LiruCookies for help on estateaccess cap viewer protocol 2019-08-07 16:29:09 +01:00
UbitUmarov 4ea679d9e8 add cap EstateAccess: missing file 2019-08-07 16:20:43 +01:00
UbitUmarov 1e0984b64c add cap EstateAccess 2019-08-07 16:16:49 +01:00
UbitUmarov 5b39860573 silly bug in libomv 2019-08-02 13:13:53 +01:00
UbitUmarov 482c51a42a cosmetics 2019-08-02 04:28:34 +01:00
UbitUmarov 04eb4744df update libopenmetaverse including a ugly hack to try to workaround issues detected with new windows .net4.8 JIT. this can be reverted with that is fixed, this can also go wrong, as usual ;) 2019-08-02 02:36:19 +01:00
UbitUmarov 0142f102ce remove redundant code 2019-08-01 05:37:27 +01:00
UbitUmarov 96dabca85b make sure XEngine does release script events when a script is destroyed 2019-08-01 05:31:03 +01:00
UbitUmarov 618c6ceda5 mantis8569: do aggregate script events when a script is deleted; block nonphysical drag if a touch event is triggered, add a time guard on that 2019-08-01 04:14:49 +01:00
UbitUmarov 6359874d64 mantis8548: let rotation division be -(olderResult) this is formally more correct (and it is the same rotation), keep not normalizing, as SL seems to do 2019-08-01 00:01:27 +01:00
UbitUmarov 0bcd58fd0f mantis8548: change more LSL arguments declarations to their formal form. Still a lot more to do. This is a case where coerence matters over performance, to avoid more future issues 2019-07-31 16:27:36 +01:00
UbitUmarov 1499baf13e mantis8564: add region_up_time to llGetEnv. Returns string with seconds since region start. There where ways do get it, but this makes life easier 2019-07-31 14:34:35 +01:00
UbitUmarov b5b518dc0d change value of PARCEL_DETAILS_DWELL to a higher value to give more room for standard values, change return types, update script syntaxe 2019-07-31 13:38:49 +01:00
TBG Renfold 0163af970f Mantis #8481 part two.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2019-07-31 12:58:11 +01:00
TBG Renfold 8de67dad76 Mantis #8481 part one.
Add llGetParcelDetails(vector pos, [PARCEL_DETAILS_LANDDWELL])

Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2019-07-31 12:58:00 +01:00
UbitUmarov cd641e8629 fix configuration loader test 2019-07-31 00:37:27 +01:00
UbitUmarov 944a785a32 now i can login on win .net4.8, but just a little drop on a large (broken) OSD ocean. some of this changes are actually good even on good JIT. Failure seems to be on same code pattern, but same points seem to vary with each JIT compilation, sometimes work, others don't, others always fail, etc 2019-07-30 23:26:29 +01:00
UbitUmarov 185ed42123 cosmetics 2019-07-30 18:34:32 +01:00
UbitUmarov a92b0e7716 Merge branch 'master' of opensimulator.org:/var/git/opensim 2019-07-30 18:22:45 +01:00
Melanie 24aa13239c Also remove the defaults from Configger 2019-07-30 18:15:09 +01:00
Melanie d29ffbf551 Restore the OpenSimDefaults I had to move out of the way to test this 2019-07-30 18:07:02 +01:00
Melanie 08c9ad6a5b Remove the outdated and no longer useful hardcoded config defaults 2019-07-30 18:03:01 +01:00
UbitUmarov 87eb2fa9da cosmetics 2019-07-30 17:51:20 +01:00
Melanie 08b62c8daa Don't try to print XML if a corrupted asset is actually binary data 2019-07-30 16:01:15 +01:00
Melanie 1c8508cfbd Put back the code to create the ready marker file. 2019-07-29 18:05:30 +01:00
Melanie 34209d2a39 Fix godnames module to not add the empty string if only one option is used 2019-07-27 12:12:35 +01:00
Melanie d6723dab37 Merge branch 'master' of brain.opensimulator.org:/var/git/opensim 2019-07-27 12:10:28 +01:00
UbitUmarov 78359c108d mantis 8563: do not modify collection inside a loop on it a foreach on it 2019-07-15 22:10:47 +01:00
Melanie 2f52a3b124 When using FSAssets, the HGAssetService would still use AssetService.
This introduces a new HGAssetService config option named BackingService,
which defaults to the old behaviour, loading AssetService. It can, however,
be used to load FSAssets for HG assets, which eliminates numerous problems.
2019-07-13 13:33:34 +01:00
Melanie aedaa32ddc When using FSAssets, the HGAssetService would still use AssetService.
This introduces a new HGAssetService config option named BackingService,
which defaults to the old behaviour, loading AssetService. It can, however,
be used to load FSAssets for HG assets, which eliminates numerous problems.
2019-07-13 13:30:15 +01:00
UbitUmarov d372309e3c mantis 8558: send sane values for Agents and objects capability (max hard limit) 2019-07-06 20:49:00 +01:00
UbitUmarov 03abb970f4 reduce httptimout on first try to save a asset to grid 2019-06-14 20:13:57 +01:00
UbitUmarov 05f508229c make materials save to grid less async on manual backup or shutdown 2019-06-14 20:12:33 +01:00
UbitUmarov 79442c8c56 handle confirmXfer sync 2019-06-13 01:33:25 +01:00
UbitUmarov b09ea5bdc7 delay timeout a bit 2019-06-13 01:12:47 +01:00
UbitUmarov 086248c13b minor cleanup 2019-06-13 00:08:51 +01:00
UbitUmarov 4b8c5ee6e8 test... 2019-06-12 03:12:51 +01:00
UbitUmarov 878d0defc7 add a lock 2019-06-12 02:41:20 +01:00
UbitUmarov da90da220e still a few more changes to lludp Xfer download for lost udp case 2019-06-12 01:43:32 +01:00
UbitUmarov 238efad690 a few more changes to lludp Xfer download 2019-06-11 01:19:57 +01:00
UbitUmarov 017253fae9 a few more changes to lludp Xfer download 2019-06-10 19:17:32 +01:00
UbitUmarov 2cba0d676e test... 2019-06-09 23:40:50 +01:00
UbitUmarov 9ff7601214 reduce some useless array copies 2019-06-09 20:15:36 +01:00
UbitUmarov 41e2379f97 mantis 8460: reduce odds of watchdog timeout warning 2019-06-04 19:02:50 +01:00
UbitUmarov 38e937f91b add sim feature AvatarHoverHeightEnabled; mantis 8535: make option MeshModelAllowTextureToInventory visible 2019-05-28 21:37:59 +01:00
UbitUmarov 8410a01fb4 missing old flag VEHICLE_FLAG_NO_FLY_UP 2019-05-22 23:16:36 +01:00
UbitUmarov 9c44dc3384 change yengine comments on ini file 2019-05-19 14:20:01 +01:00
UbitUmarov 0e2adbe0fb mantis 8527 and 8517: let llSetLinkPrimitiveParam*() PRIM_TEXTURE ignore texture id/name if invalid, processing the other parameters, for compatibily with old scripts. 2019-05-14 02:48:03 +01:00
UbitUmarov 3ae4115e43 osLocalTeleportAgent: if lookat or fly options, just move the avatar, not telling viewer about any teleport 2019-05-03 00:39:55 +01:00
UbitUmarov 3a055c578d soem cleanup 2019-05-02 03:11:16 +01:00
UbitUmarov ea32a73103 osLocalTeleportAgent: no region crossings :( ; check avatar access to target position; flag 8 == force fly; 16 force nofly (both == fly) 2019-05-01 03:49:24 +01:00
UbitUmarov 11c945a565 add osLocalTeleportAgent(key agent, vector position, vector velocity, vector lookat, LSL_Integer flags). Velocity only works with ubOde but still not good. flags = bit field: 1 use velocity, 2 use lookat, 4 rotate avatar look in current velocity direction (ignored if 2 ie flag = 7 is same as 3). This bypasses most the unnecessary logic of osTeleportAgent, having usage same permissions. It may do region crossings(?). Experimental stage, feedbakc expected ;) 2019-05-01 01:36:10 +01:00
UbitUmarov 9225b78309 missing files... 2019-04-30 23:04:04 +01:00
UbitUmarov 3491af440f missing files... 2019-04-30 23:01:37 +01:00
UbitUmarov e9587c8835 sop: rename a few fields 2019-04-30 22:56:31 +01:00
UbitUmarov 15dd033490 primbasicshape: convert eventual MeshEP to SculpEP 2019-04-30 22:52:58 +01:00
UbitUmarov 8994045d5f old typo 2019-04-23 14:52:15 +01:00
UbitUmarov 5314f375c5 change osSetProjectionParams a bit and add a variant that atkes a linknumber argument. For now can only change one prim per call 2019-04-18 15:26:27 +01:00
UbitUmarov bd442208d8 mantis 8517: actually let NULL_KEY do the same as on PRIM_TEXTURE 2019-04-18 14:01:54 +01:00
UbitUmarov 2b4e5fcded mantis 8517: let texture argument of PRIM_TEXTURE only change the other parameters. On PRIM_NORMAL and PRIM_SPECULAR will be as NULL_KEY removing the material. This may be changed for coerence in future 2019-04-18 13:17:40 +01:00
UbitUmarov 11cad57c9c lludp: change burst, make it per category (overall reduction) 2019-04-16 19:07:26 +01:00
UbitUmarov 37fb937e0d Yengine: rename a field, do some updates using interlocked 2019-04-16 17:28:09 +01:00
UbitUmarov 09d92565dc typo on a debug message format 2019-04-16 15:31:31 +01:00
UbitUmarov 6bbd5eb6a2 Yengine: change binary code version, so scripts are automaticly recompiled with new changes 2019-04-16 11:39:28 +01:00
UbitUmarov 2fa5d10c00 Ynegine: add some missing memory usage on script reset 2019-04-16 00:07:13 +01:00
UbitUmarov a83b7a292b mantis 8518: Yengine; we can't wait for GC (worse finalizers) to count released memory of some local variables, so add a pseudo free; fix memory account on timeslice rentry; change the folder for the debug IL files; fix memory usage on reset. This changes will only take effect on new compiles 2019-04-15 23:32:22 +01:00
UbitUmarov cfd3923868 update warp3d.dll 2019-04-12 00:19:42 +01:00
UbitUmarov a824258c88 warp3d: reduce work prims textures to at most 256x256 2019-04-11 23:47:01 +01:00
UbitUmarov 2b604fa889 update warp3d.dll 2019-04-11 23:44:18 +01:00
UbitUmarov d977613162 do disable probes when voc is disabled 2019-04-10 21:28:41 +01:00
UbitUmarov 4475b3db27 degradate udp network efficiency a even more 2019-04-10 14:01:10 +01:00
UbitUmarov ee989dd552 missing file 2019-04-10 00:27:17 +01:00
UbitUmarov b459b2c65f dont send animation before object 2019-04-10 00:25:49 +01:00
UbitUmarov b051b3a81d change to ping based RTO 2019-04-09 21:30:06 +01:00
UbitUmarov c09b312b05 testing ... 2019-04-09 18:50:08 +01:00
UbitUmarov 49fb9d6b4b degradate udp network efficiency a bit more 2019-04-09 13:05:18 +01:00
UbitUmarov b8a061816f degradate udp network efficiency a bit 2019-04-09 12:46:21 +01:00
UbitUmarov f29fdb6bda old tp timing issues on grid presence notification did came back, so put back old hack 2019-04-09 10:22:55 +01:00
UbitUmarov 2c8e03b589 testing ... 2019-04-09 00:25:38 +01:00
UbitUmarov cadcf412ec linux likes other tz names 2019-04-08 14:04:02 +01:00
UbitUmarov b104934a25 add osGetPSTWallclock() returns wall clock in PST or PDT, for those that for some odd reason think need it. OpenSim girds shoudl use UTC (gtm) but whatever 2019-04-08 13:50:51 +01:00
UbitUmarov 539a3a9273 make robust ban by MAC options visible, thx Bill Blight 2019-04-07 16:29:31 +01:00
UbitUmarov 442ef1cc9e change a comment 2019-04-06 21:27:54 +01:00
UbitUmarov ec6a52c029 change interpretation of a viewer flag 2019-04-06 21:26:12 +01:00
UbitUmarov a25e18587c set SupportViewerObjectsCache true by default 2019-04-06 16:30:19 +01:00
UbitUmarov b7c1d6e7f5 UserAgentService: change handling of its external IP 2019-04-06 16:09:42 +01:00
UbitUmarov 0ebb1f3f4b presence detector: don't even try to logout agents that didn't made to root 2019-04-06 12:25:54 +01:00
UbitUmarov 5ed2b5c990 try handle the special case MaxRegionsViewDistance = 0 (agents only see void around region, even if there are regions around 2019-04-05 14:43:48 +01:00
UbitUmarov 3bc0690a7a temp workaround on sits culling 2019-04-05 12:32:36 +01:00
UbitUmarov 28c9725730 kill avatar on agents that do not see its new region 2019-04-05 12:31:43 +01:00
UbitUmarov 7ce45235e6 make sure viewer knows where to place a sitting avatar, this will need deep revision with culling 2019-04-05 11:19:38 +01:00
UbitUmarov 6485377ecd fix MinRegionViewDistance option (added in last commit); change regions view control 2019-04-05 04:21:40 +01:00
UbitUmarov 63321f9ccc add option RegionViewDistance 2019-04-05 04:08:14 +01:00
UbitUmarov 0652f01d4c duhhh npcs don't have child agents; plus minor typos 2019-04-05 03:45:27 +01:00
UbitUmarov 8d272fb1d0 mantis 8512: fix runprebuild 2019-04-05 03:25:02 +01:00
UbitUmarov 50c810549c change visible regions also by view range change; fix check on crossings 2019-04-04 20:16:23 +01:00
UbitUmarov a56f40470e control visible regions by avatar position and view range, first dirty code 2019-04-04 18:55:40 +01:00
UbitUmarov 07796d5ccf change region cacheid on restart. This should not be needed in future if objects cache info is stored on region db 2019-04-04 18:52:28 +01:00
UbitUmarov 42414bfa55 mantis 8512: add proposed detection of VS2019 to runprebuild (both this and vs2019 untested by me 2019-04-04 15:07:15 +01:00
UbitUmarov 15b6d8c147 send agent view range to new child agents 2019-04-04 00:50:54 +01:00
UbitUmarov 8e094887cd change avatars sending point 2019-04-02 20:27:56 +01:00
UbitUmarov b458c5a9b4 another test.... 2019-04-02 17:26:06 +01:00
UbitUmarov e7f0131509 another test.... 2019-04-02 17:05:47 +01:00
UbitUmarov 433e529512 make tests happy again; try to speedup crossings 2019-04-02 15:58:36 +01:00
UbitUmarov 8152e47a4a change the point where child regions are closed/opened 2019-04-02 15:10:42 +01:00
UbitUmarov 1984cbdbe5 add extra delay before sending initial data 2019-04-02 13:49:25 +01:00
UbitUmarov ba66d2d3c1 minor cleanup on mesh decompress code 2019-04-02 10:13:26 +01:00
UbitUmarov 2739b2f5cc mantis 8509: replace mesh gzip decompress 2019-04-01 18:12:17 +01:00
UbitUmarov 7f55db72d2 Yengine: try fix changing scripts running state if the have long events 2019-04-01 13:58:41 +01:00
UbitUmarov 3b63699b9d still issues on fast hg tps 2019-04-01 13:55:54 +01:00
UbitUmarov 5dc7623e38 change avatar arrival at hg destination handling 2019-04-01 13:18:40 +01:00
UbitUmarov 3327bed34b fix tp set callback log message 2019-04-01 12:46:03 +01:00
UbitUmarov 772aa5234a Yengine: clear events queue on reset. Also keep clearing all on state change. (Linked message events are deleted at sl) 2019-04-01 01:48:23 +01:00
UbitUmarov 7110e98815 rez npcs attachments async again 2019-03-31 23:31:18 +01:00
UbitUmarov 190e2da672 Yengine attachment drop, do set attachment ready event 2019-03-31 22:50:14 +01:00
UbitUmarov 939aff5c3b oops RegionHandShakeReply is not reentrant 2019-03-31 20:43:32 +01:00
UbitUmarov 9650cb8708 remove a potencially dang. lock 2019-03-31 20:31:35 +01:00
UbitUmarov 3a6d87da95 a few more changes on initial data sending 2019-03-31 19:28:06 +01:00
UbitUmarov 89ac80189c do clear MOAP on remove 2019-03-31 05:34:35 +01:00
UbitUmarov 4626f0850a fix osSet/GetPrimitiveParams threat level 2019-03-31 02:12:30 +01:00
UbitUmarov 98be996991 missing file 2019-03-30 12:56:23 +00:00
UbitUmarov fa4716955e make 2 tests happy again 2019-03-30 12:51:10 +00:00
UbitUmarov 6cf85a3db1 a few more changes on initial objects send 2019-03-30 12:07:49 +00:00
UbitUmarov f6db9e044d Yengine: fix scripts resume on attachments drop 2019-03-28 13:46:39 +00:00
UbitUmarov 3644879677 mantis 8508: ignore llAttachToAvatar if already attached 2019-03-28 02:32:36 +00:00
UbitUmarov 1847a42a86 changes on teleports v7 2019-03-28 00:02:24 +00:00
UbitUmarov 5663e2c0c8 try another way 2019-03-27 07:32:06 +00:00
UbitUmarov dad533fe1c timming issues on fast tp back to same region on new code 2019-03-27 06:43:22 +00:00
UbitUmarov 83fd05f131 timming issues on fast tp back to same region on new code 2019-03-27 02:04:11 +00:00
UbitUmarov 5035de053a we should be able to zeroencode compressedupdates 2019-03-25 17:51:38 +00:00
UbitUmarov b32b104996 some more changes on objects sending 2019-03-24 16:15:24 +00:00
UbitUmarov 481d7156d1 mantis 8505 ( and not 8506 by mistake on previus commit) remove the meshes numbre of sides warning. build prims with the number of sides of the high LOD submesh 2019-03-24 01:51:29 +00:00
UbitUmarov 027750e98f compact the trivial te case, a more complete one may be needed even beening heavy 2019-03-24 00:35:30 +00:00
UbitUmarov 33986aea5e mantis 8506: parse highlod mesh and compare its number of prim faces to the number of faces provided and warn mismatch 2019-03-23 23:32:39 +00:00
UbitUmarov 9c322c93cc fix particles encoding on compressedupdate 2019-03-23 08:04:23 +00:00
UbitUmarov b6626739e2 make the text enable option visible for testing 2019-03-23 04:28:22 +00:00
UbitUmarov 010d64dcd2 a bit more suicidal... 2019-03-23 03:58:22 +00:00
UbitUmarov a9aba562b1 pesty warning 2019-03-23 02:24:32 +00:00
UbitUmarov d0052c8174 add more test code to make usage od compressed updates etc. Should be disable, but well many things can go wrong. 2019-03-23 02:18:32 +00:00
UbitUmarov db191cd4e2 oops send flag PrimFlags.InventoryEmpty but do not override others 2019-03-21 07:13:39 +00:00
UbitUmarov cfbd34f618 add some code for compressed updates, but disabled, since more changes are needed elsewhere 2019-03-21 06:52:18 +00:00
UbitUmarov b1cf06796f do send flag PrimFlags.InventoryEmpty 2019-03-21 06:21:57 +00:00
UbitUmarov 7211afb3b9 missing file 2019-03-20 15:12:56 +00:00
UbitUmarov d6b3413c63 RegionHandshake IS critical llupd protocol not to be done by odd modules 2019-03-20 15:09:53 +00:00
UbitUmarov 81ff118378 lludp direct encode RegionHandshake 2019-03-20 14:41:19 +00:00
UbitUmarov fe6317f009 LSL update texture entry is heavy, set all parameters on same update 2019-03-19 21:37:58 +00:00
UbitUmarov af35882eda prevent spurius acceleration values 2019-03-19 13:00:11 +00:00
UbitUmarov c521ff394e recover the UnAckedBytes are in KB fix 2019-03-19 10:59:01 +00:00
UbitUmarov 7884278097 try to avoid some useless full object updates 2019-03-19 10:29:48 +00:00
UbitUmarov a7927e9d7b lludp ObjectAnimation encoding 2019-03-19 09:44:13 +00:00
UbitUmarov 71361f61f4 lludp SimStats encoding 2019-03-19 08:52:14 +00:00
UbitUmarov 132d8be9cc UnAckedBytes are in KB 2019-03-19 07:22:24 +00:00
UbitUmarov b10a3ba023 take the deafult on the parameter overlay 2019-03-19 06:52:57 +00:00
UbitUmarov 182977a872 do not send parceloverlay on crossings (may be bad, or not) 2019-03-19 06:38:43 +00:00
UbitUmarov 1c6be0fae3 ooops 2019-03-19 06:10:08 +00:00
UbitUmarov 6dde1aaa14 try save a few ns on parcel overlays 2019-03-19 06:00:36 +00:00
UbitUmarov c2086e6257 add a few extra checks for viewers animated objects support, to avoid timming issues 2019-03-19 00:47:45 +00:00
UbitUmarov 199d4a1bd0 lludp ReplyTaskInventory, SendXferPacket and AbortXfer enconding 2019-03-18 23:36:49 +00:00
UbitUmarov ee0eef5ee0 also fix the ThrottleOutPacketType 2019-03-18 22:29:24 +00:00
UbitUmarov f17dba9925 oops 2019-03-18 22:26:02 +00:00
UbitUmarov 37619443a7 lludp GenericMessage enconding 2019-03-18 22:19:23 +00:00
UbitUmarov 606d096709 lludp ImprovedInstantMessage enconding 2019-03-18 21:04:42 +00:00
UbitUmarov 6fd7b931b1 lludp ChatFromSimulator enconding; some simplification 2019-03-18 18:58:07 +00:00
UbitUmarov 84187975bd lludp AgentMovementComplete enconding 2019-03-18 18:03:22 +00:00
UbitUmarov b9987b4183 stop sending some useless small packets 2019-03-17 21:37:21 +00:00
UbitUmarov 9ccca71c1b remove redundant code 2019-03-17 19:00:02 +00:00
UbitUmarov 8bb0c05825 lludp: direct encode PacketAck, StartPingCheck and CompletePingCheck 2019-03-17 18:16:38 +00:00
UbitUmarov ee8ad3e69d lludp: direct encode AvatarAppearance 2019-03-17 02:02:40 +00:00
UbitUmarov 2ff5b322be lludp: direct encode CoarseLocationUpdate 2019-03-16 17:44:34 +00:00
UbitUmarov 5428b4799d lludp: direct encode rest of send terseupdates 2019-03-16 15:40:01 +00:00
UbitUmarov d8f9a007f4 bug fix on mapblockreply; direct encode mapitemreply just because.. 2019-03-16 14:30:53 +00:00
UbitUmarov 4a80802bec lludp direct encode mapblockreply. Not bc its a high volume packet, but bc it needed work anyways 2019-03-16 00:38:49 +00:00
UbitUmarov 492ba8f644 minor cleanup 2019-03-15 19:21:44 +00:00
UbitUmarov e1c20a32ca LSL: limit sittext and touchtext to length current viewers cand display 2019-03-15 18:17:50 +00:00
UbitUmarov 46dc9ebd4e lludp: change zero encode of strings; limit them to what current viewers expect 2019-03-15 18:08:05 +00:00
UbitUmarov f143dbc23f lludp direct encode object Properties update packets 2019-03-14 17:11:23 +00:00
UbitUmarov b82337de09 Robust: to tell main httpserver to stop on shutdown 2019-03-12 11:48:17 +00:00
UbitUmarov 1b8999b130 try to work around robust shutdown/quit blocking on mono 2019-03-12 11:14:59 +00:00
root c7a02dc058 Merge branch 'master' of brain.opensimulator.org:/var/git/opensim 2019-03-11 23:41:26 +00:00
root 0a4f0758fa Should have been in the last commit 2019-03-11 23:40:55 +00:00
root c3f9b1568c Fix multi, and single tenancy on MapGet 2019-03-11 23:38:57 +00:00
root e877c94b51 Add a but more status info on marker files 2019-03-11 23:37:53 +00:00
root d8e558a3da Allow anyone to get a CAP to the console - check rights on use 2019-03-11 23:36:52 +00:00
UbitUmarov 68b0d9f31d errr use invariantculture compare not current 2019-03-11 23:24:20 +00:00
UbitUmarov 186e9e2838 at login do try proper region name match before sending just somewhere that looks similar 2019-03-11 23:15:30 +00:00
UbitUmarov 32a03a49fc lludp: direct encode terrain patchs packets 2019-03-10 15:56:14 +00:00
UbitUmarov 7b55d42b11 lludp fix max packet size on ack appends 2019-03-10 11:23:38 +00:00
UbitUmarov 343239c7c3 do not send animated attachments to viewers that do not support them. 2019-03-09 12:04:26 +00:00
UbitUmarov 6bc37f348e ooops bad zeroencode flag 2019-03-08 22:28:57 +00:00
UbitUmarov e9d7ced733 just direct encode avatar animation also 2019-03-08 21:14:08 +00:00
UbitUmarov a32060180f agent animation object ids are only for self avatar 2019-03-08 19:14:09 +00:00
UbitUmarov 155e499457 well let trees have special state and grass data block again. 2019-03-07 18:57:13 +00:00
UbitUmarov 95c4de6144 grass even more 2019-03-07 18:20:17 +00:00
UbitUmarov 4e7cddc6a8 vegetation is special 2019-03-07 17:11:52 +00:00
UbitUmarov 9ccc3ed756 make use of direct object update encoding 2019-03-07 14:53:32 +00:00
UbitUmarov fbd741ece3 prims have at most 9 face textures 2019-03-07 12:12:11 +00:00
UbitUmarov 6ae1341c58 don't read from dbs wrong sound flags 2019-03-07 04:53:41 +00:00
UbitUmarov 9487f5cdd3 don't send irrelevant data 2019-03-07 04:50:05 +00:00
UbitUmarov fdb1ce827b fix packet type 2019-03-06 22:48:00 +00:00
UbitUmarov 0970dc04e2 llupd add direct encode, with inline zeroencode, of objects update ( code path currently not in use) 2019-03-06 22:42:37 +00:00
UbitUmarov cf0f3954a8 lludp do inline zeroencode of some(most) agent full updates (runprebuild) 2019-03-06 20:00:39 +00:00
Robert Adams 87c81b5172 BulletSim: Add delay to stationary check after adding force to Avatar.
Fix to Mantis 8496.
Add parameter [BulletSim] AvatarAddForceFrames.
2019-03-06 10:29:46 -08:00
UbitUmarov 39f73b82d4 dont try to backup a object in the middle of possible multipack link 2019-03-05 17:03:17 +00:00
UbitUmarov 0944a96517 llupd direct encode object updates for agents; let terse updates be zeroencoded. This is not as spec but does work 2019-03-05 16:01:29 +00:00
UbitUmarov b5ad1b7dcc remove lludp throttle texture rate cannibal option. That rate is used by http, and beeing http is still trafic 2019-03-05 09:22:34 +00:00
UbitUmarov 80056abbe7 OOOPPPSSS 2019-03-03 12:15:28 +00:00
UbitUmarov ca1993c72d direct encode lludp terse object update, let contain texture entry 2019-03-02 18:23:29 +00:00
UbitUmarov 9da1ca2b44 ll rez objects: silent ginore null object id; remove redundante llSetColor code 2019-03-02 15:38:36 +00:00
UbitUmarov 8a8ce8b10a put back assetViewer cap code, to allow viewers testing. It is disabled at OpenSimDefaults, and should not be enabled until all major viewers do it right on opensim 2019-03-01 11:57:52 +00:00
UbitUmarov 87733b196b reduce the chance of using a invalid avatar physics actor 2019-03-01 11:48:00 +00:00
Robert Adams bd1b992aaf Add Thread.ResetAbort() to various thread loops to clean up errors on
shutdown. Fixes Mantis #8494.

Threads are aborted when shutting down and ThreadAbortException is odd
in that it is rethrown at the end of the catch unless the abort is
reset. No functional changes but fewer error messages on shutdown.
2019-02-27 07:49:52 -08:00
UbitUmarov 9e182c27fb combat module: those parcel changes are now handled elsewhere 2019-02-27 13:18:38 +00:00
UbitUmarov bcf05afd64 direct encode terseupdates 2019-02-27 10:07:25 +00:00
UbitUmarov fe46f8cd1d avoid packet split on terseupdates 2019-02-26 15:09:18 +00:00
UbitUmarov 4de5e14e54 issues with udp buffers pool on heavy load 2019-02-26 15:02:57 +00:00
UbitUmarov e24adb9ea1 mantis 6569: restore full health on invulnerable set to true; combat module is outdated and needs work. By then the proposal on this mantis should be reviewed 2019-02-26 13:38:03 +00:00
UbitUmarov 91569e00a0 buffers in pool have no data, better mk that clear 2019-02-26 01:16:30 +00:00
UbitUmarov a07951b044 fix UDPBuffersPoolCount value (readable with stats show clientstack 2019-02-26 00:43:44 +00:00
UbitUmarov d5d4dc4754 zero decode using a buffer from the pool 2019-02-25 23:30:01 +00:00
UbitUmarov 91fab70236 removed a redundant function; try to make a particular vi coder happy about removed comments 2019-02-25 23:05:11 +00:00
UbitUmarov d01165818d change UDPPacketBuffer pools (does waste a bit of memory) 2019-02-25 21:46:23 +00:00
UbitUmarov 4dd89ce094 make the options visible on OpenSimDefaults 2019-02-24 10:07:48 +00:00
UbitUmarov cd5a6daa84 also throttle llhttprequest by owner, options: PrimOwnerRequestsBurst = 5, PrimOwnerRequestsPerSec = 25; increase concurrency to 8 2019-02-24 09:46:55 +00:00
UbitUmarov 800f6d6529 several changes to llHttpRequest processing: options section renamed ScriptsHttpRequestModule; throttle by prim (PrimRequestsBurst = 3, PrimRequestsPerSec = 1) and max concurrent connections per instance (MaxPoolThreads = 5), llhttprequest returns if error, nullkey if throttled, reqid otherwise 2019-02-24 07:25:50 +00:00
UbitUmarov 009af3122f update script sintaxe 2019-02-22 22:42:07 +00:00
UbitUmarov d89a089ca2 remove redundant osInventoryDescription() and improve osInventoryDesc() to do the same 2019-02-22 22:28:47 +00:00
UbitUmarov 6e05695244 add LSL_Key osGetLastChangedEventKey() ( it is a alias for lldetectedkey(0) but don't tell anyone 2019-02-21 23:41:49 +00:00
UbitUmarov 5d78f52f7b let Xengine also have that detectedkey 2019-02-21 23:17:53 +00:00
UbitUmarov bd27573130 add LSL_String osGetInventoryName(LSL_Key itemId) and LSL_String osGetInventoryDescription(LSL_String itemNameOrId) 2019-02-21 23:11:03 +00:00
UbitUmarov ece3843798 let changed allowed drop have lldetectedkey[0] return the dropped item id, Yengine and still testing" 2019-02-21 22:54:43 +00:00
UbitUmarov b7507b70bc Yengine changed position and shape events can bt throttled by mineventdelay 2019-02-21 22:05:38 +00:00
UbitUmarov 16596b6ad0 add LSL_Key osGetInventoryLastOwner(string itemNameorid) 2019-02-21 21:56:27 +00:00
UbitUmarov 17ea412da1 fix last owner on add to object inventory 2019-02-21 21:54:24 +00:00
UbitUmarov 0f574d432d Yengine:save minEventDelay in script state 2019-02-20 20:36:43 +00:00
UbitUmarov 72c472f988 Yengine: let llminEventDelay do something: it just ignores a more limited set of events than Xengine (neither do as SL) 2019-02-20 20:12:13 +00:00
UbitUmarov ac651a168a Xengine: exclude a few more events from mineventdelay 2019-02-20 04:54:32 +00:00
UbitUmarov 62fb0961fd missing file on the kick commit 2019-02-20 04:07:42 +00:00
UbitUmarov 7c0eab8a23 Xengine: don't lose state change events 2019-02-20 04:04:35 +00:00
UbitUmarov b56eb2fe63 estate kick now just kill user connection if on same region. The teleport home we did, does not make much sense, and would need more work anyways 2019-02-20 03:05:23 +00:00
UbitUmarov fdf5274c25 add osKickAvatar(LSL_Key agentKey, string alert) 2019-02-20 02:06:25 +00:00
UbitUmarov 98b6ba24b4 oops do show the object delete 2019-02-15 02:28:00 +00:00
UbitUmarov 040ab65f68 (almost) useless change 2019-02-15 02:08:45 +00:00
UbitUmarov b242232c7b minor cleanup 2019-02-15 01:38:49 +00:00
UbitUmarov 06930a1803 don't break permitions on god object return or delete 2019-02-15 01:10:56 +00:00
UbitUmarov f58e1f6265 mantis 8479: deep change DeRezObjects(..) doing independent permitions checks per action. m_useTrashOnDelete should now work except if god deletes, but still not recomended 2019-02-15 01:09:37 +00:00
Robert Adams 52947b6280 Remove some more cut-and-paste typos in 6dof constraint setup in XNA
version of BulletSim. Could only effect operation of flexible linksets when
using the C# version of the Bullet physics engine.
Found by Tampa and AliciaRaven and reported in Mantis 7612.
2019-02-05 08:35:27 -08:00
Robert Adams a1568697d0 Remove cut-and-paste typo in 6dof contstrain setup in XNA version of
BulletSim. Could only effect operation of flexible linksets when using
the C# version of the Bullet physics engine.
Found by Tampa and reported in Mantis 7612.
2019-02-05 08:07:22 -08:00
UbitUmarov 874cc47617 allow more suicidal NonPhysicalPrimMax 2019-02-05 02:25:04 +00:00
UbitUmarov 175817fe55 enforce prim size restrictions on physical state change; Place restrictions on ini values 2019-02-05 01:45:04 +00:00
UbitUmarov b8121ad8a2 prevent freswitch from messing global cert validation, more work is need on rest requests ( also for other things) 2019-02-04 21:44:40 +00:00
UbitUmarov 55f27135dd remove references to obsolete CertificatePolicy 2019-02-04 21:06:50 +00:00
UbitUmarov 364b718acf reduce the odds of MTU violation 2019-02-04 20:12:08 +00:00
UbitUmarov ef3b424b26 optimizers are silly 2019-02-03 00:47:43 +00:00
UbitUmarov 2f3101e1d2 typos, thx 2019-02-01 18:43:39 +00:00
UbitUmarov 75e48610e7 place a global cooldown of 2 min on god map generation 2019-02-01 18:19:27 +00:00
UbitUmarov 6bb8055cc2 change last commit to do as console comand generate map 2019-02-01 12:52:58 +00:00
fly-man- 45de5eb638 Allow Grid owners to regenerate a maptile for a region manually through the use of the God Tools
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2019-02-01 12:38:59 +00:00
UbitUmarov b16ee749ed change default config: allow grid gods by default, if you don't trust grid admins what are you doing there?; disable most god powers unless god level is requested on viewer 2019-01-31 18:02:21 +00:00
UbitUmarov 9046e5cb9d ubode add position to pid control it stopped flying to prevent slow drifts 2019-01-31 17:25:18 +00:00
UbitUmarov 76b777b1fb remove MRM module (minimodule). Its outdated and we have no maintainers. Thanks to all that worked on it. You should either use scripts or a full region module. Or revert this commit and update its code ;) 2019-01-31 12:14:29 +00:00
UbitUmarov 44e6f45ed6 cosmetics 2019-01-31 12:03:14 +00:00
UbitUmarov e0b06d4b6b cosmetics 2019-01-31 11:46:18 +00:00
UbitUmarov 1e1d296ef4 do update physics script events on link ( this does need another cleanup one day 2019-01-31 10:27:21 +00:00
UbitUmarov 73e64c6597 mantis 6702: fix collisions lldetectedlinknumber also on Yengine 2019-01-30 12:27:03 +00:00
UbitUmarov dd43e613f0 oops that went bad on linux, reverting 2019-01-30 00:58:41 +00:00
UbitUmarov d86bb08c28 change GetDrawStringSize so result better matchs rendering size 2019-01-30 00:46:40 +00:00
UbitUmarov eb7715e2f8 a few changes to last commits 2019-01-30 00:12:46 +00:00
UbitUmarov 5fc44398fe actually .. do take the trim out 2019-01-29 22:06:30 +00:00
UbitUmarov 373ec7afa2 try to not lose start and end spaces in osDrawText 2019-01-29 22:01:54 +00:00
UbitUmarov dc633ee768 cosmetics 2019-01-29 21:16:28 +00:00
UbitUmarov 6479eb9022 change encoding few event cap messages 2019-01-29 21:11:21 +00:00
UbitUmarov 6bc8e2413f ubode replace a locklessqueue by .net concurrentqueue 2019-01-29 13:49:29 +00:00
UbitUmarov f1076607dc mantis 8457: ok ok shutup the warning 2019-01-28 07:47:00 +00:00
UbitUmarov 52e5f58c9a add a try catch on HandleMapItemRequest 2019-01-28 04:38:27 +00:00
UbitUmarov cc27168cc1 change encoding of event cap messages 2019-01-28 04:01:09 +00:00
UbitUmarov 4c79a85621 forgotten locks on ubode 2019-01-28 03:37:54 +00:00
UbitUmarov cc204a279e change encoding of a another event cap message 2019-01-28 00:40:33 +00:00
UbitUmarov 695d807696 change encoding of a few event caps messages 2019-01-26 16:42:42 +00:00
UbitUmarov 07946e040d ok i said all ( lie ) 2019-01-25 21:40:30 +00:00
UbitUmarov f7926eb28c ok take the all change 2019-01-25 21:35:23 +00:00
UbitUmarov 367bd48d91 script mono is meaningless for us 2019-01-25 21:21:23 +00:00
UbitUmarov df568b1a66 some sop cleanup 2019-01-25 20:57:48 +00:00
UbitUmarov 61fb39e49b cleanup 2019-01-25 20:54:24 +00:00
UbitUmarov 8048746759 changes on sog boundingbox and other cleanup 2019-01-25 20:52:46 +00:00
UbitUmarov cb94991acb cleanup dead code 2019-01-25 20:50:13 +00:00
UbitUmarov 3ee70aac0b mess around with prioritizer 2019-01-25 20:49:18 +00:00
UbitUmarov e3d0ec6f40 a few changes on priority queues and their heap 2019-01-25 20:46:03 +00:00
UbitUmarov 27f5248d9f Ooops fix bad locking 2019-01-25 03:19:48 +00:00
UbitUmarov f474c10f71 change threads confusing names 2019-01-25 01:50:33 +00:00
UbitUmarov 15c28bb2d4 update libomv with a few more 'useless' changes 2019-01-25 00:23:59 +00:00
UbitUmarov d5059d650f mantis 8452: possible fix 2019-01-22 11:32:51 +00:00
UbitUmarov eb9ac87dd9 fix a bad c&p 2019-01-21 14:09:36 +00:00
UbitUmarov 9e2152d2cb disable tests that now fail bc a scenegraph is now needed to find prims by local id 2019-01-21 13:45:05 +00:00
UbitUmarov 9d002fb568 oops 2019-01-21 13:23:44 +00:00
UbitUmarov 611cfc83d6 give up on Lazy<T> 2019-01-21 13:15:11 +00:00
UbitUmarov 237cf1ced6 some cleanup 2019-01-21 12:59:32 +00:00
UbitUmarov 44d6746f40 well.. put the ode locks back, for now 2019-01-21 08:34:19 +00:00
UbitUmarov d7d5f9f775 change float to byte rounding 2019-01-21 08:03:24 +00:00
UbitUmarov ef43111fc1 another missing file 2019-01-21 06:41:01 +00:00
UbitUmarov da0ea2698b another missing file 2019-01-21 06:14:41 +00:00
UbitUmarov fad63ca814 missing file 2019-01-21 06:09:08 +00:00
UbitUmarov 33a062612f remove terraindata abstraction layer, since we only have heightmap type 2019-01-21 06:05:21 +00:00
UbitUmarov a287a8e121 this looks more like ubode 2019-01-21 01:59:33 +00:00
UbitUmarov 81bb620d64 ubode try remove a legacy lock, that is nasty 2019-01-21 01:43:35 +00:00
UbitUmarov 3897774424 cosmetics on warp3d 2019-01-20 22:50:00 +00:00
UbitUmarov 0c38d52538 cosmetics on terrain patchs 2019-01-20 20:58:27 +00:00
UbitUmarov 3bfa278984 cosmetics 2019-01-20 02:02:24 +00:00
UbitUmarov 881cdc34b3 cosmetics 2019-01-20 00:19:40 +00:00
UbitUmarov 2060b70e5d reduce some delay on shutdown 2019-01-19 08:31:07 +00:00
UbitUmarov bef8ea8bcc mantis 8458: don't forget prims on search map on link/unlink 2019-01-19 07:09:39 +00:00
UbitUmarov cc19957e0a a few more changes to tp home 2019-01-19 00:24:38 +00:00
UbitUmarov 796a8efe25 a few changes to tp home 2019-01-18 22:18:49 +00:00
UbitUmarov fc075c61ed fix HG tp detection 2019-01-18 18:42:14 +00:00
UbitUmarov 04f44bcf99 mantis 8442 more changes to alpha blending (mono does not like last) 2019-01-18 03:02:39 +00:00
UbitUmarov 0c85517e9e update libomv with more changes to low level code 2019-01-17 21:50:07 +00:00
UbitUmarov b2810c4ca7 mantis 8442 more changes to alpha blending 2019-01-16 20:24:16 +00:00
UbitUmarov d8e5b7385e mantis 8442 change alpha blending note BREAKING CHANGEgit push! old scripts using alpha parameter != 255 on osSetDynamicTextureDataBlendFace, will be diferent 2019-01-16 00:29:56 +00:00
UbitUmarov 75d3e7a7a0 disable test not conform to new tp 2019-01-14 20:14:24 +00:00
UbitUmarov cc55cf3080 do HG as old protocol, needs deeper changes 2019-01-14 19:56:29 +00:00
UbitUmarov df14ed7d31 more on TP 2019-01-14 18:39:16 +00:00
UbitUmarov 3cf9a257f7 fix te media 2019-01-14 17:56:23 +00:00
UbitUmarov 31ec5dde45 test a change to TP protocol 2019-01-14 17:25:32 +00:00
UbitUmarov 8bb644159e a few more changes to texturesentry handling on libomv and os 2019-01-14 00:35:45 +00:00
UbitUmarov 4cfcf805b3 mantis 8448: remove silly typos from libomv 2019-01-11 17:26:33 +00:00
UbitUmarov ab35bf5b9d update libomv (fix bug on last) 2019-01-11 09:43:49 +00:00
UbitUmarov f7619b6ee0 update libomv 2019-01-11 04:06:34 +00:00
UbitUmarov 43f4eca67c mantis 8447: empty buttons list in llDialog now shows Ok button 2019-01-10 21:49:38 +00:00
UbitUmarov a1182cddd5 minor direct use of libomv changes 2019-01-10 18:52:08 +00:00
UbitUmarov c0c91f3773 file that depends on libomv changes 2019-01-10 18:24:29 +00:00
UbitUmarov a98b7fc389 update libovm 2019-01-10 18:20:46 +00:00
UbitUmarov 5bd16eaf9e mantis 8445: fix PackFixed(...) 2019-01-09 14:49:01 +00:00
UbitUmarov 7d9d862e8b fix irc protocol 2019-01-08 23:09:22 +00:00
UbitUmarov 47ae155f13 give a bit more time bf closing child agents 2019-01-08 18:07:10 +00:00
UbitUmarov ff8f70418b a few more changes to terraincompressor and libomv 2019-01-08 18:02:07 +00:00
UbitUmarov 2ccaf54a1f update libomv 2019-01-08 03:37:48 +00:00
UbitUmarov c37b2094ba cosmetics: terrain compressor is for 16m x 16m patchs only 2019-01-07 23:54:13 +00:00
UbitUmarov 59cfea73ca missing file 2019-01-06 20:15:30 +00:00
UbitUmarov 950b605b42 more changes on scenegraph etc 2019-01-06 20:10:43 +00:00
UbitUmarov 6e60917522 change its foreach 2019-01-06 02:23:49 +00:00
UbitUmarov 54b4523da8 let DoubleDictionary... also have a values array 2019-01-06 02:10:17 +00:00
UbitUmarov 3e49e13249 change scenegraph locking 2019-01-06 01:44:37 +00:00
UbitUmarov c5604d3857 similar to sps array in scenegraph 2019-01-06 01:23:08 +00:00
UbitUmarov f2b447a08f change mapandarray array update time 2019-01-06 00:47:32 +00:00
UbitUmarov be94a0bffa minor cosmetics 2019-01-05 23:39:39 +00:00
UbitUmarov fc4de64af4 fix reprio trigger on tp 2019-01-04 03:00:36 +00:00
UbitUmarov e79f266714 oops, thats elsewhere 2019-01-04 02:14:20 +00:00
UbitUmarov f58a106068 broadcast position updates after tp 2019-01-04 01:55:18 +00:00
UbitUmarov dd5717f7ae change cancel kill update flags 2019-01-04 01:12:59 +00:00
UbitUmarov d90b45f25e some viewers now also seem to need time bf closing child regions on TP 2019-01-04 00:12:22 +00:00
UbitUmarov 2ac6fb9ae9 allow landing under lower hight skyboxes 2019-01-03 23:11:39 +00:00
UbitUmarov c032724921 reduce tp close child agent delay time 2019-01-03 12:36:36 +00:00
UbitUmarov b24c669c16 more on the hack (runprebuild) 2019-01-02 16:44:13 +00:00
UbitUmarov 9c043fe414 mantis 8438: work around null ref 2019-01-01 13:16:35 +00:00
UbitUmarov 02492f7b15 replace my hack by others hack 2019-01-01 12:06:29 +00:00
UbitUmarov 813fda90da temporary HACK to not kill some viewers 2018-12-31 16:58:44 +00:00
UbitUmarov ae00623b65 lost in updates 2018-12-31 13:33:00 +00:00
UbitUmarov d841c593b9 add a bit more persistence (still mysql only) 2018-12-31 09:54:54 +00:00
Melanie d8ade44fe9 Put the virtual decls back in, they're needed by the freshly donated ...
... XStorage module that creates the XML for the new viewer, anod more.
It overrides them to know if new init XML needs to be cached.
2018-12-31 00:21:50 +00:00
UbitUmarov ffca7de65d add some persistence (mysql only) 2018-12-30 22:31:32 +00:00
UbitUmarov 24c4cf74c6 mantis 8436: fix lludp message 2018-12-30 19:00:43 +00:00
UbitUmarov 488e2bcde2 update libopenmetaverse 2018-12-30 16:15:35 +00:00
UbitUmarov 817b622b79 changes on updates 2018-12-30 02:41:13 +00:00
UbitUmarov cf89799c0b changes on updates 2018-12-29 23:03:03 +00:00
UbitUmarov b156378819 changes on updates 2018-12-29 19:04:39 +00:00
UbitUmarov 333aa0d67c changes on updates 2018-12-29 16:52:16 +00:00
UbitUmarov 7679617d52 change DBGSuids a bit, let it return uuid.zero in more fail cases, not killing region 2018-12-29 13:29:39 +00:00
UbitUmarov 4d3d9998a9 still pgsql 2018-12-28 23:16:05 +00:00
UbitUmarov 616fa8dbee sog GetLinkNumber() forget avatars that did standup 2018-12-28 21:26:07 +00:00
UbitUmarov 00278f7258 remove silly double locking 2018-12-28 21:12:19 +00:00
UbitUmarov 8d28c94879 PGSQL: it may be a good idea to also add the field to the table 2018-12-28 18:52:31 +00:00
UbitUmarov 650cef67d1 PGSQL: store vehicle data 2018-12-28 18:44:33 +00:00
UbitUmarov c14209e362 add some LSL 2018-12-28 14:40:51 +00:00
UbitUmarov 92b7dd27a3 missing file 2018-12-28 14:03:52 +00:00
UbitUmarov 4a73cc81dc now break several things at same time... sog/sop updates, threads options,... 2018-12-28 13:52:59 +00:00
UbitUmarov 0cf5876c45 update pbs 2018-12-28 13:28:25 +00:00
UbitUmarov 21728b3129 some retouchs on animationset code 2018-12-28 11:38:00 +00:00
UbitUmarov 47563564b7 update libopenmetaverse 2018-12-27 17:35:21 +00:00
UbitUmarov 810ab5f1a3 update OpenSimDefaults.ini 2018-12-21 16:10:31 +00:00
UbitUmarov 3a20ccb403 warp3d: add RenderMinHeight and RenderMaxHeight options, work on prims only for now 2018-12-21 15:51:12 +00:00
UbitUmarov 97747cd3d4 warp3d: try handle planar mapping 2018-12-20 23:27:18 +00:00
UbitUmarov b240de6aca remove spurius newline 2018-12-20 08:11:03 +00:00
UbitUmarov 23d03517a9 LINK_ALL_CHILDREN includes sitting avatars 2018-12-19 05:40:18 +00:00
UbitUmarov 5c998f6d60 let osGetPrimitiveParams also return sitting avatar informationg, if PRIM_LINK_TARGET points to one 2018-12-19 05:09:38 +00:00
UbitUmarov f03ee2f795 still another 2018-12-19 04:01:52 +00:00
UbitUmarov 3941c827cc oops 2018-12-19 03:52:43 +00:00
UbitUmarov 9e0a119f9b bug fixes 2018-12-19 03:27:54 +00:00
Stolen Ruby 551c097db9 Added support for f suffix on YEngine floats
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-12-18 21:36:20 +00:00
UbitUmarov 530a6a40ed mantis 8427: add new reject flags, change default, see mantis 2018-12-17 10:57:09 +00:00
UbitUmarov f94b6c3ead update url to 0.9.1.0 page 2018-12-16 21:22:45 +00:00
UbitUmarov 4d13b1db49 avoid sending garbage... 2018-12-16 20:46:51 +00:00
UbitUmarov 921364e877 several changes to last patch 2018-12-16 20:18:26 +00:00
fly-man- ed039a5fe0 Enables the buildin Caps ServerReleaseNotes
~ Dedicated to Quill Littlefeather ~

Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-12-16 19:17:18 +00:00
UbitUmarov a2c200e659 Merge branch 'master' of opensimulator.org:/var/git/opensim 2018-12-13 15:39:00 +00:00
Melanie f31845ed8d Triggering a build / IRC message 2018-12-13 14:21:41 +00:00
UbitUmarov 18947d93fc actually disable osSetContentType on osslEnable.ini, so is only enabled by machine owner intentionally 2018-12-13 13:38:32 +00:00
UbitUmarov d6c9ddfdee cleanup last patch 2018-12-11 18:23:26 +00:00
Bill Blight 0881840946 Add osNpcSayTo(key npc, key target, integer channel, string message)
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-12-11 17:32:50 +00:00
UbitUmarov af2a9d9508 mantis 8420: ubOde awake up lazy body 2018-12-11 17:23:55 +00:00
Melanie 5e9fa5e7f5 Return a fake openid token to enable web services on a grid to identify the user 2018-12-11 15:09:06 +00:00
UbitUmarov 2059d548a6 minor changes on llSetContentType 2018-12-11 14:57:33 +00:00
UbitUmarov 2c2b887c8a change osSetContentType threat level 2018-12-11 14:55:32 +00:00
uriesk 34b7d7ec6e Remove OpenID cookie check (agni_sl_session_id) from *SetContentType Remove commented out second llSetContentType thats the same as osSetContentType anyway
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-12-11 14:18:55 +00:00
UbitUmarov 1610595697 Yengine reset global variables possible damaged by bad state file 2018-12-11 00:42:02 +00:00
UbitUmarov 11b467cabf Yengine actually loose the bas state file 2018-12-10 23:45:54 +00:00
UbitUmarov 6297717399 mantis 8419: TakeCopy now sends to objects; Take to a child of trash or lostandfound also, else goes to original folder 2018-12-10 06:23:38 +00:00
UbitUmarov 043a213302 pesty warning 2018-12-08 03:50:51 +00:00
UbitUmarov 6597b7ab46 Yengine try to better recover from invalid state files 2018-12-08 03:31:47 +00:00
UbitUmarov 295f24fe01 mantis 8416: change string compare method (actually on previus commit) 2018-12-08 02:36:59 +00:00
UbitUmarov f8c3fc5e05 mantis 8416: test 2018-12-08 02:26:36 +00:00
UbitUmarov 7b2b29d10d return a proper http error 2018-12-07 04:45:32 +00:00
UbitUmarov 144f353d50 remove a warning 2018-12-07 03:34:42 +00:00
UbitUmarov ede7f28184 disable GetAsset (ViewerAsset) cap. Current viewers implementation is not compatible with opensim 2018-12-07 03:31:38 +00:00
UbitUmarov 58b68aa5e9 fix compile putting back useless things until they are fully removed 2018-12-06 19:04:51 +00:00
UbitUmarov 66f46c6846 ubOde: slow down collision events to attachments 2018-12-06 18:50:42 +00:00
UbitUmarov d2bfe986bf GetAssets: only throttle mesh and texture 2018-12-06 02:28:26 +00:00
UbitUmarov deb0ab7400 GetAssets: we still need to service avatars that did left region 2018-12-04 21:56:39 +00:00
UbitUmarov 037de89a75 clean a bit 2018-12-03 13:51:45 +00:00
UbitUmarov 66f3c6c730 avoid a data copy 2018-12-03 10:39:54 +00:00
UbitUmarov 79234795fd avoid a data copy 2018-12-03 10:17:22 +00:00
UbitUmarov 57bd671e00 stats heap allocation rate can negative 2018-12-02 17:29:13 +00:00
UbitUmarov ca754b0156 avoid a data copy 2018-12-02 16:17:23 +00:00
UbitUmarov 7a4d8017d7 simplify a bit 2018-12-02 00:41:01 +00:00
UbitUmarov 9cb0c51483 cleanup 2018-12-01 23:18:48 +00:00
UbitUmarov 8c80572b02 comment some debug msgs 2018-12-01 23:17:45 +00:00
UbitUmarov 4ced4fed33 replace GetMeshModule and GetTextureModule 2018-12-01 23:13:24 +00:00
UbitUmarov 27dfdcf1fa clean a bit 2018-12-01 18:50:53 +00:00
UbitUmarov e08b43569e potencial mem leak 2018-12-01 18:49:30 +00:00
UbitUmarov 60bc64a90f LLSDxmlencode uint and ulong 2018-11-30 23:13:21 +00:00
UbitUmarov b783244a50 move http range parser to util 2018-11-30 23:10:29 +00:00
UbitUmarov 7554e62861 add a sound 2018-11-30 22:03:30 +00:00
UbitUmarov 0ba13b9b00 recover GetMesh2 cap 2018-11-30 12:28:37 +00:00
UbitUmarov cc7a241cbc remove xmr json functions that where a fix for ossl ones now removed 2018-11-29 21:07:46 +00:00
UbitUmarov 98b12278f0 fix CopyInventoryFromNotecard error handling 2018-11-29 20:21:25 +00:00
UbitUmarov 2eee87fea3 mantis 8414: add cap CreateInventoryCategory handler 2018-11-29 18:57:32 +00:00
UbitUmarov 47bc1fb257 OSSL remove functions with illegal lsl types, also redundante 2018-11-28 08:20:38 +00:00
UbitUmarov a99055160b YEngine no longer uses mono.tasklets 2018-11-27 17:47:37 +00:00
UbitUmarov aeba9c2394 oops fix vs2015 msbuild detection 2018-11-27 17:31:59 +00:00
UbitUmarov 834a8fac2f update DotNetOpenMail.dll 2018-11-27 14:11:43 +00:00
UbitUmarov c98f4d0158 remove unmaintaned and obsolete GlynnTucker.Cache 2018-11-27 13:40:09 +00:00
UbitUmarov 46defa5d31 change runprebuild.bat to not create compile.bat if msbuild for vs2017 or vs2017 not found 2018-11-27 13:02:12 +00:00
UbitUmarov cc6a02dd53 remove option vs2010 from runprebuild.sh 2018-11-27 11:28:33 +00:00
UbitUmarov 28171e1d10 change runprebuild.bat to try to find msbuild of most recent visual studio instaled for compile.bat 2018-11-27 11:20:39 +00:00
UbitUmarov 0307427b94 a few more changes 2018-11-26 20:20:28 +00:00
UbitUmarov 7258531e3b show prim ID on script error 2018-11-26 19:57:42 +00:00
UbitUmarov 27da6f1301 Yengine: simplify ossl severe error message, and make it on debug channel like Xengine 2018-11-26 19:44:32 +00:00
UbitUmarov 911ef0ce52 remove a ossl dev only option 2018-11-26 18:35:45 +00:00
UbitUmarov 87acd20d95 add script constant OS_APIVERSION, we should inc this on any change on any api. a few changes to os npc and avatar animation functions 2018-11-26 16:45:04 +00:00
UbitUmarov 1e76e14cce a fix to contributors list 2018-11-26 12:21:47 +00:00
UbitUmarov 28366f789e change HandlerDeRezObject again to account for out or order packets 2018-11-26 04:19:41 +00:00
UbitUmarov dc9f0d3627 change code feature that old compilers don't suport 2018-11-26 01:29:25 +00:00
UbitUmarov be2c0aa552 fix ossl severe error 2018-11-25 23:10:44 +00:00
UbitUmarov cded996265 remove a dev only conditional on lludp handlers; change parcel lists updates a bit; 2018-11-25 18:56:38 +00:00
UbitUmarov d179b2dda1 avoid data references stuck in packet pools 2018-11-25 18:38:37 +00:00
UbitUmarov 91986445a6 update contributors 2018-11-24 15:24:23 +00:00
UbitUmarov fa29db5552 Yengine: oops rename the var on all relevant places 2018-11-23 02:43:34 +00:00
UbitUmarov 590d7ccf43 try better handling of llupd DeRezObject 2018-11-23 02:09:35 +00:00
UbitUmarov 5dc20ad1e5 Yengine: rename a local var 2018-11-23 01:54:22 +00:00
UbitUmarov 56845d4b75 mantis 8411: fix send inventory item flags mask 2018-11-23 00:42:05 +00:00
UbitUmarov 5951152082 Yengine: try read XEngine state from wire 2018-11-22 01:11:35 +00:00
UbitUmarov fb0c8036f0 Yengine: use using... 2018-11-20 23:07:14 +00:00
UbitUmarov 3e5ca6efd6 Yengine: change script first line processing, also look to language option 2018-11-20 22:54:57 +00:00
UbitUmarov 5485ba2ae6 Yengine: do use SourceHashCode 2018-11-20 22:43:03 +00:00
UbitUmarov a2208e5c8c Yengine: remove some xmr API functions now added to OSSL 2018-11-20 22:32:07 +00:00
UbitUmarov 82415785fc bitbucket still does not like building.md 2018-11-20 18:17:55 +00:00
UbitUmarov cb1ebd1604 add osApproxEquals for float, vector and rotation, note that default margin is 1e-6 to match strings rounding 2018-11-20 18:12:18 +00:00
UbitUmarov c4a0e574c8 mantis 8410: llwhisper, llSay and llShout emit from the source prim not root 2018-11-19 14:07:48 +00:00
UbitUmarov cea34f7065 a few changes to README.md 2018-11-19 11:04:38 +00:00
UbitUmarov b71ec0f2d6 another change to building.md 2018-11-19 10:06:36 +00:00
UbitUmarov 67d5212d53 another change to Building md file 2018-11-19 02:26:08 +00:00
UbitUmarov 8474af04e1 removed repeated lines 2018-11-19 00:56:10 +00:00
UbitUmarov 2fb82f84d2 update osslEnable 2018-11-18 23:35:16 +00:00
UbitUmarov 5f2a76437e update script syntax 2018-11-18 22:45:53 +00:00
UbitUmarov 9dfb906666 add a few string functions to OSSL 2018-11-18 22:40:59 +00:00
UbitUmarov 01b84ef46b some cleanup 2018-11-18 22:39:08 +00:00
UbitUmarov 5b2fab99a6 update osslEnable 2018-11-18 19:45:22 +00:00
UbitUmarov ba87ba9c47 remove odd ossl function 2018-11-18 19:40:51 +00:00
UbitUmarov 9be4663d3c typos 2018-11-18 18:50:19 +00:00
UbitUmarov 65310f3e5e don't share SHA256CryptoServiceProvider (can be improved) 2018-11-18 01:01:39 +00:00
UbitUmarov a23be00bf3 ohh we have build instructions on git also ;) 2018-11-17 23:22:38 +00:00
UbitUmarov bbf1ed6727 code aesthetics 2018-11-17 21:15:36 +00:00
UbitUmarov 6e98272f0d code aesthetics 2018-11-17 20:46:09 +00:00
UbitUmarov ad99461590 code aesthetics 2018-11-17 20:43:16 +00:00
UbitUmarov cebe40f5cd ooops 2018-11-17 20:27:09 +00:00
UbitUmarov f6d4fadb0a a few more changes to pbs 2018-11-17 20:22:15 +00:00
UbitUmarov 87a723cbc8 code aesthetics and simplification 2018-11-17 18:52:16 +00:00
UbitUmarov 852e20a5a7 code aesthetics 2018-11-17 17:35:47 +00:00
UbitUmarov efd6fb05a9 code aesthetics 2018-11-17 17:05:28 +00:00
UbitUmarov 1f5169e636 code aesthetics 2018-11-17 16:04:55 +00:00
UbitUmarov d43eeb1d9d avoid a null ref on Bullet 2018-11-15 22:17:44 +00:00
UbitUmarov 9234613ed5 update script syntax 2018-11-15 20:49:15 +00:00
UbitUmarov 7bcef500a9 remove CM api, add replacement ossl functions, as i should had done on the merge of avination code contrib. (runprebuild) 2018-11-15 20:29:25 +00:00
UbitUmarov d537862cc2 Yengine: remove potencial log spam 2018-11-15 16:57:50 +00:00
UbitUmarov f44569eee5 Yengine: ignore llResetScript() in default state_entry like X does. No idea why some do it, but do 2018-11-15 01:24:46 +00:00
Kevin Cozens 54b4e7a3e3 Fixed spelling error (availble -> available) 2018-11-14 18:16:52 -05:00
Kevin Cozens 06fef1569b De-tabified OpenSim.ini and made trivial fixes to two comments. 2018-11-14 18:12:22 -05:00
UbitUmarov fad6295398 change ossl link sound functions to search for sound both on script host and target prims 2018-11-14 19:02:00 +00:00
UbitUmarov afb1d6cdd7 take friends out of basicDOSprot (too little, too late) 2018-11-14 17:49:05 +00:00
UbitUmarov 35f5d4449b take login service out of basicDOSprot (too little, too late) 2018-11-14 17:33:26 +00:00
UbitUmarov b48cbcbfdd simplify a bit some caps paths 2018-11-14 16:23:14 +00:00
UbitUmarov 942fd5e653 replace Enviroment response encoding ( runprebuild needed) 2018-11-14 15:34:12 +00:00
UbitUmarov a1a8b5f4a7 replace RemoteParcelRequest response encoding ( runprebuild needed) 2018-11-14 13:12:25 +00:00
UbitUmarov 48854ec83d some cleaup 2018-11-13 01:19:44 +00:00
UbitUmarov cc10cd2161 oops 2018-11-13 00:58:27 +00:00
UbitUmarov e4ed2d7d6c similar changes on CopyBundleToInventory 2018-11-12 23:53:20 +00:00
UbitUmarov 191b0888a2 a few changes to deattach object update 2018-11-12 23:21:08 +00:00
UbitUmarov d31854ee3c BuySell: a few changes on sell copy 2018-11-12 22:54:37 +00:00
UbitUmarov 7fcb3fdf11 FSAssets: truncate assets name and description to max size 2018-11-12 20:46:11 +00:00
UbitUmarov c28738a17f fix a http error response 2018-11-12 16:06:40 +00:00
UbitUmarov 64f8036d8f pesty warning 2018-11-12 11:22:39 +00:00
UbitUmarov c05598fe62 ubOde: remove support for old native ODE lib; make inplace terrain changes, if possible 2018-11-12 11:12:52 +00:00
UbitUmarov 9185d397df add a bit more things to ScriptSyntax, change a few more incoerent lsl types in function arguments 2018-11-10 21:00:04 +00:00
UbitUmarov 90db067d2a last commit was relative to mantis 8405 not 8396 2018-11-09 15:33:54 +00:00
UbitUmarov f9a2fbed83 mantis 8396: on access control, change viewer string to match so it does include the viewer name, not just version 2018-11-09 15:22:15 +00:00
UbitUmarov 492b9e3326 mantis 8035: fix number of prims use to be from all owned parcels 2018-11-08 21:52:16 +00:00
UbitUmarov fe63b4c97d fix unknown priority scheme setting error. Thx Ai Austin 2018-11-08 16:38:34 +00:00
UbitUmarov 72d9bbfafb some cleanup 2018-11-08 01:24:13 +00:00
UbitUmarov 31e49a7ab3 update ini files comments on InterestManagement 2018-11-08 01:14:32 +00:00
UbitUmarov ad8ddb8a78 changes to objects updates prioritizing getting dust on my disk. Schemes reduced to SimpleAngularDistance and BestAvatarResponsiveness 2018-11-07 20:32:39 +00:00
UbitUmarov afd3852a36 change region gettexture response if presence not found 2018-11-07 05:11:36 +00:00
UbitUmarov 41df4d7da4 remove some fire and forget methods missed file 2018-11-06 15:23:20 +00:00
UbitUmarov 3741abab7c udp threads don't need to be fg 2018-11-06 15:18:36 +00:00
UbitUmarov 2f07f96686 remove some fire and forget methods 2018-11-06 15:15:35 +00:00
UbitUmarov 6ea394467d if viewer asks for range reply in same format even if its full data 2018-11-06 15:09:49 +00:00
UbitUmarov 9e274ce64d fix typo 2018-11-03 11:52:41 +00:00
UbitUmarov 5b5e53aa1d we should only have one http poll service manager per instance 2018-11-03 11:43:47 +00:00
UbitUmarov 3e6342eb61 fix lsl http url pool service still not starting correctly 2018-11-02 02:25:53 +00:00
UbitUmarov 0aff4a2914 fix lsl http url pool service not beeing removed 2018-11-02 02:21:34 +00:00
UbitUmarov 1ea5116f00 forgot about lsl secure urls service.. so lets try another way for now (mantis 8382) 2018-11-02 00:08:34 +00:00
UbitUmarov 9e71b5575a only main http server listener should run events pool 2018-11-01 21:36:37 +00:00
UbitUmarov 292a9c9cd7 update httpserver.dll 2018-10-30 23:24:59 +00:00
UbitUmarov cf33e0440a reduce some threads priority 2018-10-28 14:43:14 +00:00
UbitUmarov a1d132d3ca let the syntax file include its id again 2018-10-25 02:36:36 +01:00
UbitUmarov a95397e8f5 update syntax file 2018-10-25 02:12:23 +01:00
UbitUmarov 7479638e88 remove a unnecessary scripts constants file 2018-10-25 02:06:44 +01:00
UbitUmarov 82a0fa7dfe update script syntax file 2018-10-24 17:29:31 +01:00
Bill Blight bd4907e960 Protect/Prevent user names from using valid HG identifiers.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-10-23 22:06:16 +01:00
UbitUmarov c643b4236f a few changes to last commit 2018-10-23 18:55:26 +01:00
Mandarinka Tasty 06a35b9559 llName2Key. Thanks to mewtwo0641 and watcher64.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-10-23 18:01:13 +01:00
UbitUmarov 7c8cf9f362 remove a dead module 2018-10-23 12:48:28 +01:00
UbitUmarov 601d965009 remove AttachmentsCommandModule 2018-10-23 12:27:08 +01:00
UbitUmarov cba65b1935 recover the inword region console comand Set AutoGrantAttachPerms 2018-10-23 11:02:16 +01:00
UbitUmarov d842f835a6 remove ThrottlePer100PrimsRezzed option, do not delay attachments with thread.sleep 2018-10-23 10:27:09 +01:00
UbitUmarov 050d53fe5b fix opensim.ini.examplewq coments on mutes module 2018-10-22 02:18:55 +01:00
UbitUmarov dd2fd3e4a0 fix wrong error message in mutelist connector 2018-10-22 02:06:56 +01:00
UbitUmarov fdb4fb3f3f update script syntax 2018-10-21 17:53:02 +01:00
UbitUmarov 495b22470d oops some code got in ahead of time 2018-10-21 12:41:28 +01:00
UbitUmarov 0986555765 mantis 8387: (try) avoid potencial out of order phys operations 2018-10-21 12:13:21 +01:00
lickx 94a5e5b9b7 Add non-transparent water asset
Used by all viewers when 'Transparent Water' is unchecked in the viewer
prefs

Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-10-20 19:58:22 +01:00
UbitUmarov 4ca859b4fc mantis 8356: patched by hand, thx Lotek 2018-10-20 19:49:37 +01:00
UbitUmarov 56d5b3bf92 oops 2018-10-20 16:21:36 +01:00
UbitUmarov 47488c9017 change ossl tests setup 2018-10-20 16:01:26 +01:00
UbitUmarov 2c3522a826 ossl error messages are not from a agent 2018-10-20 15:38:50 +01:00
UbitUmarov d1d370ada3 avoid a null ref during jenkins tests 2018-10-20 15:35:04 +01:00
UbitUmarov 05b79e203d change ossl error report and NPC create error handling 2018-10-20 15:25:28 +01:00
UbitUmarov 8b5b251d1a mantis 8398: fix with previus commits; removed redundante code 2018-10-20 14:10:56 +01:00
UbitUmarov 2ea5f09ed3 Remove NPCs from UserManagement when removed 2018-10-20 14:07:01 +01:00
UbitUmarov 6d063785bd add RemoveUser to UserManagement 2018-10-20 14:04:11 +01:00
UbitUmarov e7d9fe966c fix groups v2 agentUUI ofr uuid.zero case 2018-10-20 14:00:13 +01:00
UbitUmarov f01e4600d1 double Ooopss 2018-10-20 02:06:05 +01:00
UbitUmarov 0611d3339b remove TempAttachments module 2018-10-20 01:00:55 +01:00
UbitUmarov d9018cf517 add a few more things to SrcriptSyntax 2018-10-20 00:21:40 +01:00
UbitUmarov 76f8a09bb3 LSLSyntax some cleanup 2018-10-19 19:37:13 +01:00
UbitUmarov 2886408a76 autogen LSLSyntax version uuid 2018-10-19 18:35:31 +01:00
UbitUmarov 4fae8d3d39 cap LSLSyntax was enabled by mistake 2018-10-19 04:06:47 +01:00
UbitUmarov 190e7433cc fix typos 2018-10-19 04:03:52 +01:00
UbitUmarov 6569f12d40 add initial test support for cap LSLSyntax. This does not seem to work for Opensimulator on viewers, In particular with FireStorm seems impossible to replace its own definitions, viwers do note revert to defaults on tp to a region that does not suport this cap, etc. So possible just a dead end. Disabled by default 2018-10-19 03:43:01 +01:00
UbitUmarov db255c97d6 fix AGENT_MALE lsl constant havinf same value as AGENT_AUTOPILOT 2018-10-18 23:15:58 +01:00
UbitUmarov 877a78ce91 change chattype on llRegionSayTo when sending to avatar viewer only.
Thanks Royale for pointing this
2018-10-18 15:04:54 +01:00
UbitUmarov 96acb48334 mantis 7391: deliver llregionSayTo to all scripts on prim that match target specs 2018-10-18 14:42:07 +01:00
UbitUmarov 235dd37b9c better have a lock 2018-10-08 18:53:30 +01:00
UbitUmarov 57ec0d3884 change caps get mesh and texture throttle 2018-10-08 17:29:42 +01:00
UbitUmarov 7eeaee631d avoid a null ref 2018-10-08 16:59:57 +01:00
UbitUmarov 87e97543d6 try to make inventory fetch tests happy 2018-10-07 01:36:47 +01:00
UbitUmarov eb5fe57a17 more use of simpler xml encoder on inventory fetch, plus other cosmetics 2018-10-06 23:47:56 +01:00
UbitUmarov 1bcdcc2419 mantis 8384: try to fix bullet heimap managed memory sharing with unmanaged lib 2018-10-03 21:17:23 +01:00
UbitUmarov 57ae99b113 missed new c# version only code 2018-09-30 05:39:58 +01:00
UbitUmarov 0f1bc23039 a few changes to last patch 2018-09-30 05:11:34 +01:00
Mandarinka Tasty 5751add537 Implementation-and-design-of-ClientOnParcelGodMark
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-09-30 04:36:39 +01:00
UbitUmarov 8812684355 minor changes 2018-09-29 21:40:52 +01:00
Bill Blight 6d9de17d77 **CONFIRMED**AGAIN** , Add new function, osSetOwnerSpeed(float speed), threat level moderate
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-09-29 21:16:33 +01:00
UbitUmarov ed0e2623b9 add a few more gc collect in some spots 2018-09-29 17:42:12 +01:00
UbitUmarov 5a0c9c2fcf more on culture issues 2018-09-27 19:04:11 +01:00
UbitUmarov 37dcb8722c make sure Culture is right on some spots 2018-09-26 22:32:34 +01:00
UbitUmarov a5d6a394ef mantis 8372: replace XMLRPC.dll with utf8 fix 2018-09-17 15:12:02 +01:00
UbitUmarov 391edb862e stop sending agent update again when destiny refused the agent 2018-09-15 00:44:10 +01:00
UbitUmarov e96e923159 some teleport issues.. 2018-09-14 21:54:38 +01:00
UbitUmarov 075ebf3524 fix osDie harakiri for Yengine 2018-09-13 12:32:55 +01:00
UbitUmarov 4652f8b84f pesty warning 2018-09-13 11:38:28 +01:00
UbitUmarov ca404e5001 some cleanup 2018-09-12 13:48:29 +01:00
UbitUmarov cd9327cd8b Merge branch 'master' of opensimulator.org:/var/git/opensim 2018-09-12 13:24:01 +01:00
Melanie e874e3a2ad Merge branch 'master' of opensimulator.org:/var/git/opensim 2018-09-12 13:22:17 +01:00
Melanie 39e82cb043 Squelch "connection reset by peer" exceptions 2018-09-12 13:13:11 +01:00
UbitUmarov 714f4387b8 fix a error message 2018-09-11 10:31:02 +01:00
UbitUmarov f466c56ba4 oooops 2018-09-08 07:39:14 +01:00
UbitUmarov ca9651df0d Yengine cast issue 2018-09-08 04:58:14 +01:00
UbitUmarov 0d93d5ce69 fix script secure llhttlrequest 2018-09-08 04:46:02 +01:00
UbitUmarov e6615a193d a few changes to ScriptSleep() functions 2018-09-04 22:19:30 +01:00
mewtwo0641 4e4d687f3f Add YEngine support for ScriptDelayFactor
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-09-04 21:38:09 +01:00
UbitUmarov 50627304a6 avoid using new c# sintaxe that will fail on older compilers 2018-08-30 20:09:12 +01:00
UbitUmarov 9647a1e6c5 minor changes to last patch 2018-08-30 14:51:07 +01:00
Mandarinka Tasty 99a23421a8 Adding check permission CanIssueEstateCommand for osRegionNotice and new function osRegionNotice(string agentID, string msg)
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-08-30 14:25:19 +01:00
UbitUmarov 7120ffbc08 add the Smoke texture to Opensim Library 2018-08-28 21:51:59 +01:00
UbitUmarov e075b349ce new try on smoke texture 2018-08-27 15:12:24 +01:00
Fly Man d9028ac07f Adjusted Smoke texture
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-08-27 11:51:03 +01:00
UbitUmarov 9f3c803552 avoid potencial null refs 2018-08-26 08:40:35 +01:00
UbitUmarov 7c60e83f30 don't shutdown robust twice 2018-08-26 08:37:30 +01:00
UbitUmarov 58ba645160 mantis 8273 make change on crossings coerent 2018-08-26 03:11:32 +01:00
UbitUmarov 14f55ab36e fix smoke asset filename 2018-08-26 01:33:49 +01:00
UbitUmarov 10e4d01375 remove a comment 2018-08-26 01:01:17 +01:00
fly-man- d3d915ce3c Patching in the Smoke for Mantis 8242
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-08-26 00:54:32 +01:00
UbitUmarov 88d638a0cf mantis 8349: fix landmasks 2018-08-07 20:38:58 +01:00
UbitUmarov 390cb703f3 and some more guard try{}catch{} on ub mesh processing 2018-07-29 23:31:38 +01:00
UbitUmarov a6d5da3e7f mantis 8346: fix argument of osUnixTimeToTimestamp 2018-07-27 14:20:59 +01:00
UbitUmarov 1b5c6c48f9 make BanLineSafeHeight option visible in OpenSimDefaults.ini 2018-07-21 18:36:29 +01:00
UbitUmarov e15fca60d1 mantis8342: make max ban height above ground configurable per regions instance with ini file option BanLineSafeHeight 2018-07-21 18:31:58 +01:00
UbitUmarov 8c1c9129aa mantis8341: fix MOD and LS apis configuration read from ossl file 2018-07-18 22:19:46 +01:00
UbitUmarov 9278a9a9dd http reusecontext is obsolete 2018-07-14 22:35:51 +01:00
UbitUmarov 81fb1b008f http reusecontext is obsolete 2018-07-14 21:51:43 +01:00
UbitUmarov aee981e5e2 http reusecontext is obsolete 2018-07-14 21:48:59 +01:00
UbitUmarov ee2eed8c6f http reusecontext is obsolete 2018-07-14 21:42:07 +01:00
UbitUmarov 01400e38d5 typos 2018-07-14 18:41:13 +01:00
UbitUmarov 0daa4eff8a minor cleanup 2018-07-14 17:07:30 +01:00
UbitUmarov ee6f261415 a few changes about test mesh uploads 2018-07-14 17:01:50 +01:00
UbitUmarov dd508d4c4f use Vector.Distance not util.. 2018-07-14 16:58:09 +01:00
UbitUmarov 282877a454 save a sqrt call 2018-07-14 16:47:51 +01:00
UbitUmarov dd67ab6025 change the scope of those options variables 2018-07-14 16:42:10 +01:00
UbitUmarov a4881797b9 add options for regions to ignore age < 18 and payment access control where they don't apply 2018-07-14 16:36:41 +01:00
UbitUmarov 6b8fda098d recover lost null check in last commit 2018-07-14 16:11:03 +01:00
UbitUmarov 0731220a9d change bitmasks work 2018-07-14 15:21:59 +01:00
UbitUmarov 8ab5a87520 only resize if need 2018-07-14 15:19:09 +01:00
UbitUmarov 84235900b2 do not use lossless compression on dyntextures 2018-07-14 15:13:21 +01:00
UbitUmarov ef8097f998 add missing xml escape 2018-07-14 14:46:08 +01:00
UbitUmarov ea815df6bd add a disabled log 2018-07-14 14:43:20 +01:00
UbitUmarov 6f4052561e send data as bin not string to http lower level 2018-07-14 14:39:29 +01:00
UbitUmarov f9c9dc585c have default ids of avatar alpha and tattoo 2018-07-14 14:27:33 +01:00
UbitUmarov f17b48e73e some cleanup 2018-07-14 14:22:52 +01:00
UbitUmarov 770f59ff87 drop compatibility with old robust that did not suport inventoryService.GetMultipleItems 2018-07-14 14:09:56 +01:00
UbitUmarov c7baee1638 add using into a few more places 2018-07-14 14:05:47 +01:00
UbitUmarov d7a9195078 missed one 2018-07-14 02:12:51 +01:00
UbitUmarov 519d320e3c update ini.example files 2018-07-14 01:10:59 +01:00
UbitUmarov 8ed4bee521 mantis 8333: kept idea but my own code. With ini setting ConsoleHistoryTimeStamp set to true, the console history file will have timestamps. Im lazy date is in en-us culture for now. (robust also) 2018-07-14 00:46:47 +01:00
UbitUmarov a235a28132 minor changes to last patch 2018-07-13 23:03:26 +01:00
fly-man- 334986ddc6 Group Powers changed and Officers role brought back for Groups
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-07-13 22:12:19 +01:00
UbitUmarov 3cea21ab63 mantis 8335: fix string format 2018-07-11 18:26:17 +01:00
UbitUmarov e52bc6b575 Mantis 8308: update libopenjpeg-dotnet-2-1.5.0-dotnet-1.dylib adding missing 64bit support. Built with the macOS 10.13 SDK on Xcode 9.4.1. Thanks Gavin Hird for providing us this. 2018-07-11 12:09:59 +01:00
UbitUmarov ee115a83df Bug fix: Object Wear was doing Add not replace 2018-07-11 03:08:57 +01:00
UbitUmarov c3933ce8b9 replace some string tests 2018-07-08 13:41:55 +01:00
UbitUmarov 60644b440b we don't use tab simbol, we use 4 whitespaces 2018-07-08 13:26:41 +01:00
Vincent Sylvester 6e3f934c4b Add mac banning
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2018-07-08 13:05:47 +01:00
UbitUmarov 102fbf8422 update contributors 2018-07-07 16:44:08 +01:00
UbitUmarov 18cc36cf41 update contributors 2018-07-07 16:22:24 +01:00
Kevin Cozens e5238cadf7 Back-end fix for region name searches made from the viewer grid map dialog.
GetRegionsByName now returns names that include, but don't start with, the
given search string.
2018-07-06 21:28:18 -04:00
UbitUmarov 8ac69a5d27 just remove the test instead 2018-07-06 02:23:06 +01:00
UbitUmarov 834a0e8b6d fix version string size test 2018-07-06 01:57:59 +01:00
UbitUmarov 6da07ded04 let OpenSim.ini.example be closer to functional standalone ini 2018-07-05 22:34:08 +01:00
UbitUmarov 5e1bf88875 test jenkins 2018-07-05 20:27:52 +01:00
UbitUmarov 91247e0631 test 2018-07-05 02:29:56 +01:00
UbitUmarov 39c8db8eb1 ubOde change terrain min height to -100m. Maybe this way a viewer dev mays fix rendering below 0m, like making them think z = 1m for that purpose, for example 2018-06-27 23:14:26 +01:00
UbitUmarov c53658248a reassign estate setting TaxFree to the role of AllowAccessOverride, as viewers did. Keeping name to reuse dbs entries, etc. let viewers change it, but still NOP 2018-06-19 01:18:18 +01:00
UbitUmarov 9b87626cdb mantis 8329: don't fail if response stream is Chunked encoded and http debuglevel >=5 2018-06-18 01:04:26 +01:00
UbitUmarov 31633699cf mantis 8327: refix minor typos 2018-06-16 16:01:09 +01:00
UbitUmarov c3d2f2d119 mantis 8327: fix minor typos 2018-06-16 14:18:05 +01:00
UbitUmarov ba193fc606 minor cleanup 2018-06-16 14:11:44 +01:00
UbitUmarov 76a82ba5de improve llOverMyLand() handling of potencial null refs. ty mrieker 2018-06-09 20:45:05 +01:00
UbitUmarov a48d65fd77 Yengine apply a fix to CheckRunLockInvariants by mrieker 2018-06-09 20:35:35 +01:00
UbitUmarov 3b2786d27e change MaxRegionsViewDistance description a bit 2018-05-28 15:21:51 +01:00
UbitUmarov 83029042d3 ok ok it only has one 't' 2018-05-28 10:09:37 +01:00
UbitUmarov 629eeca836 english typo, thx you know who 2018-05-28 09:48:14 +01:00
UbitUmarov 5463bffa68 make Yengine post attach event as Xengine does. This should fix that event. Thx mrieker for pointing out this issue 2018-05-28 09:25:09 +01:00
UbitUmarov 458fe42afd fix some cases in prim number of sides 2018-05-27 01:54:05 +01:00
UbitUmarov e0b2ee80f9 fix a bug on warp3d.dll 2018-05-26 23:03:27 +01:00
UbitUmarov d5117b6cf7 update warp3d.dll 2018-05-26 19:32:37 +01:00
UbitUmarov 007adce081 missing updated files 2018-05-26 19:02:09 +01:00
UbitUmarov f6765b8668 use RegionInfo.ServerURI to report region url on datasnapshot 2018-05-26 05:43:55 +01:00
UbitUmarov 57fb1ea9df stale LandSnapshot by time also, so dwell can be updated 2018-05-26 04:58:44 +01:00
UbitUmarov 7c50651cd1 add a check to data_exposure option of DataSnapshot module 2018-05-26 03:35:56 +01:00
UbitUmarov 8f0f102869 fix one english typo 2018-05-26 03:18:53 +01:00
UbitUmarov 631308a1d1 map... 2018-05-18 05:31:45 +01:00
Kevin Cozens c7f3f3586d Warp3D tried to do something in RegionLoaded even when the module was disabled 2018-05-16 14:29:45 -04:00
Kevin Cozens 1ea71c6182 Whitespace changes 2018-05-16 14:29:10 -04:00
UbitUmarov 06d6c4abda breaking map a bit more... 2018-05-15 23:56:12 +01:00
UbitUmarov f87219975d bug fix: avoid null ref on trigger soundi if source is a avatar 2018-05-15 00:56:31 +01:00
UbitUmarov 570440256b avoid potencial out of range issues 2018-05-13 03:09:56 +01:00
UbitUmarov fbb77274da OOps my bad, always do deep copy, let viewers do v1 v2 fixes 2018-05-12 21:35:25 +01:00
UbitUmarov 468b25ff69 let wearables check command suport variable number of wearables 2018-05-12 19:57:55 +01:00
UbitUmarov 0d83b9edc3 create user with model: do not copy missing items; convert v1.0 to v2.0 wearables, fail if model has missing wearables 2018-05-12 19:16:23 +01:00
UbitUmarov cf1ea3b093 breaking map (warp3d) suport default map parameters. Planar not suported ( will render as deafaul 2018-05-08 16:58:15 +01:00
UbitUmarov f7475d4a98 breaking map (warp3d)... 2018-05-08 07:01:38 +01:00
UbitUmarov 4837a8a8fa breaking map (warp3d); remove warp3d viewport code not realy used and confusing my last neuron 2018-05-07 17:29:19 +01:00
UbitUmarov fd426354f1 breaking map (warp3d) 2018-05-07 06:08:54 +01:00
UbitUmarov ea5d40f7f2 breaking map (warp3d) 2018-05-07 03:56:53 +01:00
UbitUmarov 00cc17c239 breaking map (warp3d) 2018-05-06 23:28:36 +01:00
UbitUmarov b91c0f0d01 remove some debug lines 2018-05-06 18:04:56 +01:00
UbitUmarov 0467b6dc3b change the AverageTextureColorOnMapTile default to false 2018-05-06 17:50:07 +01:00
UbitUmarov dffa628966 break nap a bit more, add options ExportMapAddScale, ExportMapAddRegionName and (warp3d) AverageTextureColorOnMapTile 2018-05-06 17:32:03 +01:00
UbitUmarov bf0ece8061 fix warp3d textures UV 2018-05-05 04:27:41 +01:00
UbitUmarov 020f34f75b a few more changes to warp3d and export-map 2018-05-05 02:50:27 +01:00
UbitUmarov a91ef313ef change warp3d terrain rendering, so it does cover all area 2018-05-05 00:49:57 +01:00
UbitUmarov 09ae675d28 Merge branch 'master' into httptests 2018-05-04 23:01:53 +01:00
UbitUmarov 24df1086fa fix ubOde terrain copy at north and east borders 2018-05-04 23:00:34 +01:00
UbitUmarov acd55c6f12 mantis 8084: add the missing PRIM_ALPHA_MODE constants 2018-05-04 20:15:56 +01:00
UbitUmarov 7838689dda why where map and dynamic textures compressed lossless? 2018-05-04 16:59:11 +01:00
UbitUmarov 9ae3452e03 change region console comand export-map: make it work with var regions, center target region and make the display area be the region size plus MaxMaxRegionViewDistance in all 4 directions. Add the region name and total area size text info. Some of this can be made options/comand arguments in future improvements 2018-05-01 16:01:11 +01:00
UbitUmarov 26ecba48f0 Merge branch 'master' into httptests 2018-04-28 12:45:32 +01:00
UbitUmarov 44fd5bb7b5 mantis 8321: avoid null reference potencial caused by outdated LMs for example 2018-04-28 12:43:06 +01:00
Kevin Cozens bf175d1f01 Added important comment missed from my previous commit (hash 8af2d99b). 2018-04-27 22:03:54 -04:00
Kevin Cozens 16c72dce5d Whitespace change. 2018-04-27 20:15:39 -04:00
UbitUmarov 76c4296e39 remove a extra source line i left behind 2018-04-27 22:38:27 +01:00
UbitUmarov c6c386cd80 recover previus behavior of FontProp 2018-04-27 22:30:47 +01:00
Kevin Cozens 8af2d99ba9 Do dispose and new Font only once when handling FontProp drawing command. 2018-04-27 16:48:35 -04:00
UbitUmarov f29358744d fix http keep alive header 2018-04-20 09:23:30 +01:00
UbitUmarov 037e5d8031 save a few ns 2018-04-19 19:21:08 +01:00
UbitUmarov ad0b736405 reduce debug logs 2018-04-19 19:11:50 +01:00
UbitUmarov 79ec9d2887 use seconds version of gettimestamp 2018-04-19 19:08:28 +01:00
UbitUmarov 728040ab47 a few minor changes 2018-04-19 18:58:51 +01:00
UbitUmarov fced731e70 save a few ns on lsl vector rotations 2018-04-14 23:34:16 +01:00
UbitUmarov 7c9c5cfedf robust create user: allow new userid to be to generate a new random one; handle possible case of a weareble being a inventory link 2018-04-14 23:05:46 +01:00
UbitUmarov 90482182e5 sound radius: missing file 2018-04-10 22:24:48 +01:00
UbitUmarov ca7bd13dee sound radius is a prim prop only set by llSetSoundRadius, fix it in case viewers do fix its use (ignored for now) 2018-04-10 21:45:11 +01:00
UbitUmarov dc35ce26d0 YEngine: apply a few fixes by Mike Rieker 2018-04-10 21:15:55 +01:00
UbitUmarov 63418349e5 mantis 8275: fix llStopSound for llPlaySound. Code was doing as SL wiki but not as not real regions with FireStorm. Singularity will only stop loop sounds. None stops Trigger 2018-04-10 07:27:10 +01:00
UbitUmarov 5d0a1656bf mantis 8305: add osTriggerSoundLimited(..) 2018-04-10 03:58:54 +01:00
UbitUmarov 8a30d1303d some cleanup on ll sound functions 2018-04-09 00:48:29 +01:00
UbitUmarov 81431e90de update osslEnable.ini with the new functions 2018-04-09 00:23:23 +01:00
UbitUmarov 63da4d3f99 mantis 8305: add several ossl sound funtions that accept a link number for the prim associated to that sound. The link number must point to a single prim 2018-04-09 00:15:45 +01:00
UbitUmarov 996de5eaf1 .. and yes i forgot a file.. again :( 2018-04-06 17:00:58 +01:00
UbitUmarov 75c5821dfa remove GCnotify(). It is wrong in many ways and has no use. GC now does provide more correct ways of getting warning of when its about to happen, but writing to a log file on that is NOT something to do. 2018-04-06 16:56:49 +01:00
Kevin Cozens 6accf854a7 Added references to new math related OSSL functions 2018-04-04 16:44:46 -04:00
UbitUmarov 80c7ffeb29 fix the comment about return value of osAngleBetween() its 0 to PI 2018-04-04 01:25:49 +01:00
UbitUmarov e031d79d48 add auxiliar functions float osVecMagSquare(a), float osVecDistSquare(vector a), float osAngleBetween(vector a, vector b) and float osRound(ffloat value, integer ndigits) 2018-04-03 23:00:37 +01:00
UbitUmarov 86d8f2af5b try fix git 2018-04-01 02:26:08 +01:00
UbitUmarov a8308e2a13 coment out a debug line 2018-04-01 02:19:53 +01:00
UbitUmarov ee6034f751 several changes to materials, add llSet*PrimtiveParams*() support for them. They may be very broken now :( 2018-04-01 01:50:07 +01:00
UbitUmarov f5365cb06d Merge branch 'master' into httptests 2018-03-28 04:29:39 +01:00
UbitUmarov 4958425e37 mantis8309 add extra try{}catch 2018-03-28 04:28:36 +01:00
UbitUmarov b1569d09bf Merge branch 'master' into httptests 2018-03-27 20:01:55 +01:00
UbitUmarov 6b02c99194 fix previus commit with the right source file :( 2018-03-27 20:00:31 +01:00
UbitUmarov 20d221a963 Merge branch 'master' into httptests 2018-03-27 16:08:34 +01:00
UbitUmarov cb134e5487 mantis8307: avoid a null ref 2018-03-27 16:03:44 +01:00
UbitUmarov e733bfb3b5 fix merge issue 2018-03-20 10:09:22 +00:00
UbitUmarov 0a1d96b95e mantis 8257: fix the default realm (ie table name) of AuthenticationService 2018-03-20 09:54:49 +00:00
Kevin Cozens 122d3a3768 Removed trailing semi-colons from option settings 2018-03-19 15:35:28 -04:00
Kevin Cozens 6b24ff0bc9 Removed trailing whitespace 2018-03-19 12:30:03 -04:00
Kevin Cozens a4ac91dc6b Fixed a typo 2018-03-19 12:17:38 -04:00
UbitUmarov 1363a95840 Merge branch 'master' into httptests 2018-03-10 22:09:56 +00:00
UbitUmarov f83f7e18b6 comment out some debug messages visible on SOP CompleteMovement 2018-03-10 22:07:52 +00:00
UbitUmarov 0341b46279 Merge branch 'master' into httptests 2018-03-10 20:51:38 +00:00
UbitUmarov a0d0d65c70 mantis 7885: robust asset services have no cache and only accept a asset ID that is a uuid, so regions hack to cache several image formats is not possible. Robut GetTexture is very heavy unless image format is the default (j2k mime type x-j2k), since with no cache image convertions is performed on every request. Adicionally it does expose all textures if the tcp port is public. Avoid using it. 2018-03-10 20:50:24 +00:00
UbitUmarov 2369ce413d Yengine: only retry compile if there was a object file in cache with wrong version or signature 2018-03-09 22:44:58 +00:00
UbitUmarov 2dc49dc1e9 remove a unnecessay file check 2018-03-09 21:42:14 +00:00
UbitUmarov c723a1be16 Yengine temp file delete was still bad in case of script errors 2018-03-09 21:33:39 +00:00
UbitUmarov cf5ec5d29c Merge branch 'master' into httptests 2018-03-05 21:04:40 +00:00
UbitUmarov 8c390ef3fe Merge branch 'master' of opensimulator.org:/var/git/opensim 2018-03-05 21:00:49 +00:00
UbitUmarov d543421675 make the setting economymodule visible on Economy section of OpenSimDefaults.ini and OpenSim.ini.example. This setting must be changed to allow other modules and disable our simple one. (ours does also look for it at Startup section for legacy reasons) 2018-03-05 20:59:43 +00:00
UbitUmarov c408f0a38e Merge branch 'master' into httptests 2018-03-05 20:57:13 +00:00
UbitUmarov c5ce9b7be8 make the setting economymodule visible on Economy section of OpenSimDefaults.ini and OpenSim.ini.example. This setting must be changed to allow other modules and disable our simple one. (ours does look for it at Startup section for legacy reasons) 2018-03-05 20:37:58 +00:00
UbitUmarov 47fd3afecd change SampleMoneyModule intialization, make it look for economymodule setting both in startup and economy sections; change some default settings to no cost values, since that is our default 2018-03-05 20:20:29 +00:00
UbitUmarov befe1ad4be fix some LSL functions to return type Key as they should and not string 2018-03-05 17:02:07 +00:00
UbitUmarov dc5cd9a3ae Merge branch 'master' into httptests 2018-03-05 16:39:17 +00:00
UbitUmarov 18914fae64 make more clear some magic numbers on SOP getnumberofsides(), reduce unnecessary calls to it on LSL api 2018-03-05 16:36:39 +00:00
mewtwo0641 f579fbba0e Remove the work around for sphere number of faces since as of commit 846f35 it initially has the correct number of faces and the workaround returns 2 more than the correct number of faces. 2018-03-04 13:26:19 +00:00
UbitUmarov 5ff57f01b7 Yengine: change filename extentions on scripts state (better delete contents of bin/scriptengines/yengine .. btw bin/scriptdata is not used anymore ) 2018-02-25 00:49:44 +00:00
UbitUmarov 85b973ce1d Y(xmr)engine cosmetics... 2018-02-25 00:18:41 +00:00
UbitUmarov 2f94fa4dc7 Yengine fix its section name on opensim.ini.example 2018-02-23 17:59:30 +00:00
UbitUmarov f158867d93 Yengine replace xmr by yeng on console comands 2018-02-23 15:28:05 +00:00
UbitUmarov 2129d941ac rename XMREngine as Yengine (still not all done), big mess source formating changes, move state files to proper folder, fix a source file locking on errors, more changes for cross platform including from Mike,... yes yes i know a messy commit 2018-02-23 14:52:34 +00:00
UbitUmarov 756fbf324a Merge branch 'master' into httptests 2018-02-22 02:50:59 +00:00
UbitUmarov 846f35d365 a few more changes on tortured prims number of sides/faces 2018-02-22 02:49:56 +00:00
UbitUmarov 4a982adb02 Merge branch 'master' into httptests 2018-02-21 15:30:25 +00:00
UbitUmarov 25d6d99c6e fix a old issue on some tortured prims number of sides, and so textures set 2018-02-21 15:28:34 +00:00
UbitUmarov 9a73a39989 Merge branch 'master' into httptests 2018-02-18 14:05:57 +00:00
UbitUmarov d6a35d6d2f COmment out relocation of tmp cs source file during compilation. This seems to cause issues on same win servers, and is only usefull on deep scripts debug (Xengine compiler) 2018-02-18 14:04:02 +00:00
UbitUmarov 467b591f3a COmment out relocation of tmp cs source file during compilation. This seems to cause issues on same win servers, and is only usefull on deep scripts debug (Xengine compiler) 2018-02-18 13:55:19 +00:00
UbitUmarov 96aecf80ef Oops... don't leave script source out of compilation in same cases 2018-02-11 18:27:42 +00:00
UbitUmarov 01ceb4d17e try to fix xmr on multiregions per instance. Ugly spargetti ...; remove fixes for 2 llparcel functions that should not be needed; remove xmr own API, it has no business having one. 2018-02-07 19:52:18 +00:00
UbitUmarov cddb848c13 add a warning about XMR only suoprting one region per instance at this point, it was never made to suport more 2018-02-07 18:38:37 +00:00
UbitUmarov 53a910e3e5 some more code from mrieker for system threads, give up of all the other mono dependent theading models only availble for linux (and possible not all platforms). This only has impact on micro-threading switching, and this only happens on long events and only every 60ms, aditionally we do remove a totally extra set of threads (that could grow in a uncontroled way on win) and their hanshake with main ones. This may of course be even more broken now :P 2018-02-07 10:26:20 +00:00
UbitUmarov aa2c710c57 due credits even if code goes away 2018-02-05 12:52:46 +00:00
UbitUmarov 38cd12b3cf add mrieker fresh optimization on heap tracker 2018-02-05 12:48:07 +00:00
UbitUmarov a7e2978db9 fix log4net for .net4.6 2018-02-04 02:51:40 +00:00
UbitUmarov b1226609a1 Merge branch 'master' into httptests 2018-02-04 00:17:36 +00:00
UbitUmarov e685d8dcef mantis 8287: applied modified patch by hand, thx watcher64 2018-02-04 00:16:51 +00:00
UbitUmarov 617d76697d make XMR script cache location option visible 2018-02-03 21:18:32 +00:00
UbitUmarov 73177f2afa some new code got in ahead of its time 2018-02-03 20:50:06 +00:00
UbitUmarov 42d07e283f pesty warnings 2018-02-03 20:37:36 +00:00
UbitUmarov e7e8a7ab4d just DIE damm thread (recent monos issue) 2018-02-03 19:34:17 +00:00
UbitUmarov 04a8ec518d XMR: there is no need for a slice thread, it also causes timing issues; BelowNormal mb 2 Below on win; cosmetics 2018-02-03 08:08:59 +00:00
UbitUmarov 20ca517887 update opensim.ini.example with XMRengine information 2018-02-02 13:04:45 +00:00
UbitUmarov 83e2fee71b add experimental script engine XMRengine donated by mrieker (DreamNation) And our Melanie. ***DANGER*** ***TESTONLY*** ***disable HG*** dont leave running when not looking... tp/crossing to Xengine will reset scripts. i do see a few issues but should be testable, so we can decide if we should invest more on it. 2018-02-02 12:49:40 +00:00
UbitUmarov c70b77a528 Merge branch 'master' into httptests 2018-02-02 11:49:43 +00:00
UbitUmarov a22606a89f do not timeout floatsam assets caching thread 2018-02-02 11:47:19 +00:00
UbitUmarov c889eb64e5 let ossl have its own config section 2018-02-02 03:50:43 +00:00
UbitUmarov 5ae09e03aa remove a duplicated field 2018-02-01 03:16:32 +00:00
UbitUmarov 3635943d39 remove cap FetchLib2 suport code 2018-01-31 15:19:16 +00:00
UbitUmarov 35d1642889 disable the new Cap_FetchLib2 because viewers do not suport it for opensim. To decide when to use it, they use a hardcode LL owner ID on same code paths, while on others just compare owner to the agent. This makes suport for this cap impossible" 2018-01-31 14:55:01 +00:00
UbitUmarov 4381f16e18 keepalive is default 2018-01-30 08:15:42 +00:00
UbitUmarov 4d051f3acb add missing folders version 2018-01-30 01:37:24 +00:00
UbitUmarov 5548b66dc0 a few more changes on inventory library and inv fetch 2018-01-30 01:07:24 +00:00
UbitUmarov 4c65bb4196 a few more changes on inventory library and inv fetch 2018-01-27 18:09:44 +00:00
UbitUmarov f89b2379a0 add a few more encoding to LLSDxmlEncode.. (W or S ?) 2018-01-27 05:35:40 +00:00
UbitUmarov 13b4ce8199 add Cap_FetchLib2 note that this is still local to regions, not using grid as it possible should, but this needs more work, and issue with HG older grids/regions 2018-01-27 04:32:03 +00:00
UbitUmarov 3dbdacf31f Let MrOpenSim have simple hardcoded profile 2018-01-26 21:12:23 +00:00
UbitUmarov 6978181075 Robust: allow Library assets to override old ones, so they can be updated easily from the xml files keeping same id (left FSAssets out) 2018-01-26 21:04:46 +00:00
UbitUmarov 5e3eb8b370 Merge branch 'master' into httptests 2018-01-26 16:29:15 +00:00
UbitUmarov e3f804e1d8 try fix IAR load inventory links and objects owner 2018-01-26 16:18:45 +00:00
UbitUmarov 98019031df got tired of creating stringbuilders 2018-01-25 09:06:39 +00:00
UbitUmarov cdd3ef857c a few changes to encoder and a few more uses 2018-01-25 08:02:45 +00:00
UbitUmarov 266eabcad4 add a low level LLSDxml encoder for cases where it makes no sense to use more heavy things like OSD, and use it on displaynames 2018-01-25 06:50:49 +00:00
UbitUmarov 3aff72e403 change DataSnapeShoot init again. May still fail on multi regions instances 2018-01-25 00:55:34 +00:00
UbitUmarov 22666ad18a cleanup a bit more 2018-01-24 11:43:42 +00:00
UbitUmarov fc224b444a avoid some large unnecessary strings 2018-01-24 10:02:18 +00:00
UbitUmarov 5a246026a0 let MinHeap self trim on empty; cleanup 2018-01-24 04:48:10 +00:00
UbitUmarov e7b834874e another change to httpserver dll 2018-01-24 04:12:27 +00:00
UbitUmarov c87585ad96 simplify http bycontext key 2018-01-24 03:12:56 +00:00
UbitUmarov 3f7ffc12c4 reduce max keepalime time to 60s 2018-01-24 03:10:11 +00:00
UbitUmarov cf3d3f4f4a move datasnapshot notification to last, but still a issue with very fast service servers 2018-01-22 23:51:15 +00:00
UbitUmarov a67b523acf Merge branch 'master' into httptests 2018-01-22 21:44:05 +00:00
UbitUmarov af9bff7ed2 try fix mantis 8283 2018-01-22 21:43:21 +00:00
UbitUmarov b164925262 Ooops 2018-01-22 20:07:59 +00:00
UbitUmarov e326792aa3 move datasnapshot notification to when region is actually loaded 2018-01-22 19:56:40 +00:00
UbitUmarov 9e4bf3439c change throtle datasnapshot get 2018-01-22 19:50:07 +00:00
UbitUmarov efc7480342 throtle datasnapshot gen 2018-01-22 18:37:39 +00:00
UbitUmarov e3fc272f50 missing files.. 2018-01-22 17:27:40 +00:00
UbitUmarov d38161f83d retire our BlockingQueue replaced by BlockingCollection and cross fingers 2018-01-22 17:09:38 +00:00
UbitUmarov 437369778d give BlockingCollection more chances 2018-01-22 02:42:50 +00:00
UbitUmarov d4a5454f3c give BlockingCollection more chances 2018-01-22 00:43:33 +00:00
UbitUmarov 73b587989c give BlockingCollection more chances 2018-01-22 00:24:29 +00:00
UbitUmarov 855dcda9c3 give BlockingCollection another chance 2018-01-21 21:02:07 +00:00
UbitUmarov ccdaebaed6 give concurrentqueue another chance 2018-01-21 20:22:28 +00:00
UbitUmarov 0dbed94e13 no need to set MuteListsService twice 2018-01-21 20:09:56 +00:00
UbitUmarov cb5a7246a2 cosmetics (or not) 2018-01-21 16:40:58 +00:00
UbitUmarov 56535cdb47 change version numbers back to 0.9.1.0 2018-01-20 13:30:15 +00:00
UbitUmarov 49b4408782 some cleanup 2018-01-20 12:11:07 +00:00
UbitUmarov ccd47d0cf1 improve LLSDHelpers DeserialiseOSDMap 2018-01-20 10:43:19 +00:00
UbitUmarov e32efe5d22 add sqlite files for mutes module ( done only minimal tests) 2018-01-20 07:09:37 +00:00
UbitUmarov c34f07b6f3 silent ignore mutes on HG visitors, let viewers do it on cache only, proper HG suport is another story... and questionable 2018-01-20 01:28:00 +00:00
UbitUmarov e89f1e635b fail to connect to estates service is a fatal error 2018-01-18 13:04:05 +00:00
UbitUmarov a7db6d3097 Ooops worng ';' 2018-01-18 08:11:42 +00:00
UbitUmarov dd491bba57 abort uploading large region map tiles as soon one fails 2018-01-18 04:28:05 +00:00
UbitUmarov 0a81e35697 pesty warning 2018-01-18 02:53:00 +00:00
UbitUmarov a6e0ba262a iStackTrace(targetThread, true) is no longer safe on windoes also 2018-01-18 02:40:59 +00:00
UbitUmarov 20f3c46b78 NDesk.options .net4.6 2018-01-18 01:18:10 +00:00
UbitUmarov 389e54214d pesty warnings - run prebuild needed 2018-01-18 00:24:51 +00:00
UbitUmarov 4b1a153cfb pesty warning 2018-01-18 00:02:29 +00:00
UbitUmarov 0ad6ba11fe pesty warning 2018-01-17 23:55:30 +00:00
UbitUmarov 707eb8de82 remove more xml things no longer needed on .net >4.5.2 2018-01-17 07:17:24 +00:00
UbitUmarov e9d2d81880 pesty warnings 2018-01-17 07:04:07 +00:00
UbitUmarov ade0d8a81f missed a few 2018-01-17 04:32:22 +00:00
UbitUmarov 029d6e40f6 remove those xml things no longer needed on .net >4.5.2 2018-01-17 04:18:43 +00:00
UbitUmarov 2c8251d450 update DotNetOpenId (.net4.6) 2018-01-17 03:46:24 +00:00
UbitUmarov be02aece36 update C5 (.net4.6) 2018-01-17 03:02:03 +00:00
UbitUmarov 6dec7869b8 update LukeSkywalker.IPNetwork (.net4.6) 2018-01-17 00:55:55 +00:00
UbitUmarov 2c252032c7 test adding missing dep 2018-01-17 00:14:55 +00:00
UbitUmarov d1f6ffc2fd make mono.Addins files show version 1.3.7 2018-01-16 23:47:01 +00:00
UbitUmarov 5579144c16 update mono.Addins to version 1.3.7(.net4.6) 2018-01-16 23:37:16 +00:00
UbitUmarov c35803964f Merge branch 'master' into httptests 2018-01-16 19:12:19 +00:00
UbitUmarov 8fe16a1974 Ooops... fix the parentesis 2018-01-16 19:10:56 +00:00
UbitUmarov b903287dd1 Merge branch 'master' into httptests 2018-01-16 17:17:44 +00:00
UbitUmarov d39bf37926 do not timeout BackupWorker threads 2018-01-16 17:16:40 +00:00
UbitUmarov 8f1a68633e update lsl2c tools and parsing files. This may fix some issues with precendence of unary operators in same case, hope not break on others :( 2018-01-16 01:44:16 +00:00
UbitUmarov 49848b09e6 replace ICSharpCode.SharpZipLib with target .net4.6 2018-01-16 00:44:51 +00:00
UbitUmarov ae04a24e7a recover a lost null check 2018-01-15 18:57:15 +00:00
UbitUmarov 6f3e538c79 replace Newtonsoft.Json and Zlib.net with target .net4.6 2018-01-15 18:13:56 +00:00
UbitUmarov c92ba1cc04 shut up some pesty warnings 2018-01-15 16:23:19 +00:00
UbitUmarov 7a09a10f58 update PrimMesher to a newer version from dahlia (thx dahlia), targeted .net4.6 2018-01-15 15:12:21 +00:00
UbitUmarov 01448d751a update PrimMesh to lkalif 2013 version, .net4.6 and libomv again 2018-01-14 03:25:59 +00:00
UbitUmarov 3d87e37d99 make old Ode PInvoke follow ms coding rules 2018-01-14 01:40:49 +00:00
UbitUmarov 88511bfab2 make ubOde PInvoke follow ms coding rules 2018-01-14 01:02:21 +00:00
UbitUmarov 8a68c330e8 fix a string format 2018-01-14 00:47:12 +00:00
UbitUmarov 1d6a157134 change version to 0.9.1.1 so we can see it inworld 2018-01-13 22:40:44 +00:00
UbitUmarov 4e8fa27411 update again libomv that may depend on new log4net and XMLRPC 2018-01-13 20:43:09 +00:00
UbitUmarov a3d78b24fd add log4net apache license terms, remove axiom 2018-01-13 18:35:28 +00:00
UbitUmarov e0b695a776 testing update log4net to version2.0.8 to .net4.6 ( this more likely to smoke 2018-01-13 18:32:08 +00:00
UbitUmarov eafad5a4cb testing update Nini.dll to .net4.6 2018-01-13 16:20:59 +00:00
UbitUmarov d91c7c5958 testing update Iconic.Zip.dll to .net4.6 2018-01-13 16:08:44 +00:00
UbitUmarov d3ff4e0806 clean some modules api 2018-01-13 14:40:31 +00:00
UbitUmarov 4345d225f1 remove unused dll - XMLRPC is used not this 2018-01-12 19:19:26 +00:00
UbitUmarov 792a1c6e3d fix a string format 2018-01-12 18:09:38 +00:00
UbitUmarov fa78a6fd90 fix some odd sql queries ap not in use 2018-01-12 18:07:37 +00:00
UbitUmarov 271fab6ac2 testing update libomv CSj2k dll to .net4.6, remove unused Axiom dll 2018-01-12 12:45:46 +00:00
UbitUmarov 41633de8cb remove the temporary Xmutes module, replace MuteListModule byt the new one, previusly named MuteListModuleTst 2018-01-12 04:06:02 +00:00
UbitUmarov 17f2838757 testing update libomv dlls to .net4.6 2018-01-12 03:32:55 +00:00
UbitUmarov a3e50ef8dc testing update Warp3d.dll to .net4.6 2018-01-12 03:15:48 +00:00
UbitUmarov 98f79cf735 testing update XMLRPC.dll to .net4.6, not this is not same source that previus one.. so we may have other issues 2018-01-12 03:12:01 +00:00
UbitUmarov 3c3b8fc759 testing update httpserver.dll to .net4.6 2018-01-12 03:07:51 +00:00
UbitUmarov c69920376b change target framework to 4.6 for testing 2018-01-12 00:10:45 +00:00
UbitUmarov 439cbf0d4d missed a few.. 2018-01-09 19:48:13 +00:00
UbitUmarov e908c0ecad give up on a property that old monos do compile, but then smore ok exec 2018-01-09 19:47:10 +00:00
UbitUmarov 1a6770191c test our obsolete jenkins ... 2018-01-08 12:30:43 +00:00
UbitUmarov eec3921800 fall back to a obsolete property since several monos in use (include our own) do not suporte the proper .net4.0 one 2018-01-08 12:00:21 +00:00
UbitUmarov 250acf891f exclude folders obj from projects 2018-01-06 00:20:07 +00:00
UbitUmarov 875ca104b8 Merge branch 'master' into httptests 2018-01-05 22:37:42 +00:00
UbitUmarov 89a690c11f a few more xml things 2018-01-05 12:24:07 +00:00
UbitUmarov 0b96cd56fc don't be bad Jenkins.. 2018-01-05 00:30:00 +00:00
UbitUmarov ce0aa53cc4 let tau do something in avatar MoveToTarget 2018-01-04 23:59:47 +00:00
UbitUmarov ec6f87d3ef disable some XmlResolver 2018-01-04 23:51:43 +00:00
UbitUmarov 7f49364d65 remove some tabs added to config files 2018-01-04 22:52:29 +00:00
UbitUmarov 2811e5cef3 update configuration files and examples for mutes 2018-01-04 21:21:38 +00:00
UbitUmarov 48dbba3441 add more files for robust mutes suport. (module is still named MuteListModuleTst for testing, others in core will be removed later 2018-01-04 20:56:48 +00:00
UbitUmarov 3576d6d764 Merge branch 'master' into httptests 2018-01-03 10:48:38 +00:00
UbitUmarov 8eea9531ee fix estates URI 2018-01-03 10:21:07 +00:00
UbitUmarov 7ffb0aca44 fix/clean error messages on MySQLUserProfiles (profilesV2) 2018-01-02 01:51:14 +00:00
UbitUmarov 0259019431 fix merge 2017-12-30 15:50:03 +00:00
UbitUmarov a7803409f6 clean some extra space chars 2017-12-30 15:46:32 +00:00
UbitUmarov 8032898773 mantis 8271: work around missing encoding of estate bans on the pseudo url encode used on POST, without changing the xml also used elsewhere. Possible this can be used in other case 2017-12-30 15:28:26 +00:00
UbitUmarov f0fd15ccc9 add missing entry on prebuid.xml for mutelist service 2017-12-20 18:20:26 +00:00
UbitUmarov 3b141e6e6f Merge branch 'master' into httptests 2017-12-14 05:37:07 +00:00
UbitUmarov 201c916670 add a missing return on a mesh decode error in ubOdemeshmerizer 2017-12-14 05:36:15 +00:00
UbitUmarov 17b79cec91 mantis 8255 update example_web.xml 2017-12-13 02:14:51 +00:00
UbitUmarov b35a10e2be mantis 8250: try to work around timing issues 2017-12-13 01:10:21 +00:00
UbitUmarov ab0f866087 Merge branch 'master' into httptests
# Conflicts:
#	prebuild.xml
2017-12-12 22:19:31 +00:00
UbitUmarov d32debe618 commit what i did so far for core mutes module, befere i lose it 2017-12-11 23:58:27 +00:00
UbitUmarov a95e286168 increase sample rate of WaitGetScenePresence() 2017-12-11 23:36:42 +00:00
UbitUmarov 1e3cb82756 move some sharable items out of Xmute to Framework; add another test mutelistmodule, ignore it 2017-11-17 01:30:39 +00:00
UbitUmarov 4150a616c5 try kick jenkins/nant 2 2017-11-16 18:45:01 +00:00
UbitUmarov 366cdac656 try kick jenkins/nant 2017-11-16 18:13:32 +00:00
UbitUmarov 2f13b68d4f add missing part of mutes list protocol 2017-11-16 17:50:06 +00:00
Melanie Thielker d35ab8c86c Donating the Avination Mute Module
This lived out-of-tree and therefore wasn't part of the big code
drop. It's classic Avination, tied to MySQL and a direct database
connection and I don't have the bandwidth to fix it to core methods.
However, it has all the strange mute logic that OpenSim was missing
and maybe someone can step up to make it work in an open grid context.
2017-11-14 12:12:07 +00:00
UbitUmarov 873d42005f add AGENT_LIST_EXCLUDENPC bit mask option to llGetAgentList scope to exclude NPCs 2017-11-14 03:49:32 +00:00
TomTheDragon 98f90f4eed Changing map tile colors This change also allows setting the water color, as well as the 4 colors for textured map tiles.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-11-13 20:43:16 +00:00
UbitUmarov 17c65d918a Merge branch 'master' into httptests 2017-11-12 12:11:29 +00:00
UbitUmarov 6546ea6da6 mantis 8253: don't let attachments delete remove controls from viewers on crossings. 2017-11-12 12:00:03 +00:00
UbitUmarov f2b54c8cf9 mantis 8200: move changes in PGSQL from last commit to a new transaction (13) 2017-11-12 09:16:32 +00:00
TomTheDragon 6a75b7c65e PGSQL EstateStore create estate_settings_id SEQUENCE
Missing creation for estate_settings_id sequence causes first run
to fail unless manually added.

Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-11-12 09:07:09 +00:00
UbitUmarov cdb7d506fd Merge branch 'master' into httptests 2017-11-12 03:26:48 +00:00
UbitUmarov eaa239eb06 add a warning in opensim.ini.example mute lists, about the fact viewers cache beening shared by all grids, and that can be confusing 2017-11-12 03:26:10 +00:00
UbitUmarov ca4804b758 Merge branch 'master' into httptests 2017-11-12 03:18:02 +00:00
UbitUmarov 8e8108c78c change opensim.ini.example mutes coments to express what our current code does 2017-11-12 03:16:40 +00:00
UbitUmarov e0fd966186 off line module V2 must not sent a empty mutes list. That is mutes modules job (or let viewers use they cached entries if none) 2017-11-12 02:51:59 +00:00
UbitUmarov fcb8b2a3c3 mantis 8260 fix script count on delete and remove redundantTriggerRemoveScript in 2 points 2017-11-08 09:10:56 +00:00
UbitUmarov 8eb9bc8b19 mantis 8263: recover the ignore of texture changes if only materialID changed. That should be done by respective cap (as before) 2017-11-08 06:51:55 +00:00
UbitUmarov 8479658cd0 remove a potencial (and silly) deadlock; let other texture parameters changes trigger Changed.TEXTURE event 2017-11-08 01:53:36 +00:00
TomTheDragon 56d2db3a18 Add a new experimental implementation of PGSQL FSAssets
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-11-03 05:10:37 +00:00
UbitUmarov 39d1426f27 Merge branch 'master' into httptests 2017-10-30 19:06:17 +00:00
UbitUmarov 5360a8fea4 mantis 8258: also limit mesh basic shape torus hole sizeY on (some) existent objects. 2017-10-30 18:56:05 +00:00
UbitUmarov 3fb61f4470 mantis 8258: change Mesh basic shape pathScaleY in case of Torus 2017-10-30 18:26:15 +00:00
UbitUmarov 16a8e166ff Merge branch 'master' into httptests 2017-10-26 19:01:16 +01:00
Kevin Cozens 6a5b234262 Fixed typo in a comment. 2017-10-26 13:43:36 -04:00
Kevin Cozens 70d693eff2 Added missing Allow line for osGetSimulatorMemoryKB. 2017-10-26 13:42:54 -04:00
Kevin Cozens 5cc41eee34 Sorted the groups of Allow statements by alphabetical order. 2017-10-26 13:40:59 -04:00
Kevin Cozens fbb2f7f319 Corrected name of function in call to CheckThreatLevel. 2017-10-26 13:29:14 -04:00
Kevin Cozens d65f055e4e Whitespace cleanup. 2017-10-26 11:26:49 -04:00
UbitUmarov f81375cf1e mantis 8253: try to recover information about takecontrols pass=false controls on crossings, also tell viewers about them. this may still not be correct. Use of multiple TakeControls on same avatar can still give unpredictable results (also on normal operation). In same cases last executed my override previus or not. Also change agent updates wait code 2017-10-25 02:59:19 +01:00
UbitUmarov c220c277e2 Merge branch 'master' into httptests 2017-10-15 23:03:39 +01:00
UbitUmarov 3d6553afee add osGetSimulatorMemoryKB(). This allows work around the fact osGetSimulatorMemory() reports at most 2GB. This one limit is now 2TB, should ne enought for a while 2017-10-15 14:46:21 +01:00
UbitUmarov 68e9baf2e0 Merge branch 'master' into httptests 2017-10-13 20:36:29 +01:00
Robert Adams b51b4d4171 Merge branch 'master' of git://opensimulator.org/git/opensim (Ubit beat
me to the repository).
2017-10-13 12:04:52 -07:00
UbitUmarov dd58f15bff mantis 8249: give better data to llDetectedGrab 2017-10-13 20:00:38 +01:00
Robert Adams df3759e099 BulletSim: Add parameter "[BulletSim]AvatarWalkVelocityFactor=1.0" to
adjust the walking speed passed from the simulator. Default is 1.0f so
there should be no change for regions who do not change the factor.

The adjustment for walking speed and AlwaysRun speed should be in the
simulator and not the physics engines (who all assume TargetVelocity.set
is only used for avatar walking/running) but that would require tweaking
all the phyiscs engines.
2017-10-13 12:00:07 -07:00
UbitUmarov 59afeb6c4c remove a dead line of code 2017-10-06 02:43:46 +01:00
UbitUmarov 8520ceed63 mantis 8246: don't allow 'delete object name' to delete attachments, but allow delete object id, with confirmation 2017-10-06 02:40:28 +01:00
UbitUmarov b1814d3492 Merge branch 'master' into httptests 2017-10-01 18:05:10 +01:00
UbitUmarov db88c93243 bug fix: add missing stub for osSetInertia 2017-10-01 18:03:19 +01:00
Robert Adams cc915b4d05 BulletSim: update MacOS version of libBulletSim to latest version.
See Mantis 8232.
   Thanks Gavin Hird.
2017-09-20 21:02:00 -07:00
UbitUmarov e4dfa50654 replace libomv saving a few op on vector * quaternion 2017-09-17 04:43:53 +01:00
UbitUmarov 765f4eef1e Merge branch 'master' into httptests 2017-09-16 19:01:22 +01:00
UbitUmarov 2247251c2f bug fix: Of course i had to pick a wrong number for profileBegin 2017-09-16 18:58:10 +01:00
UbitUmarov 5687c5d494 Merge branch 'master' into httptests 2017-09-16 01:00:28 +01:00
UbitUmarov 997a85568e double request.ReadWriteTimeout 2017-09-16 00:46:26 +01:00
UbitUmarov 05da6b9f14 bug fix. Increase the values of profileHollow and profileBegin used to match pbs number of faces and the Mesh number of faces. The small values i used before seem to be randomly lost. 2017-09-16 00:19:58 +01:00
UbitUmarov b581a64788 ubOde: comment out some debug stats 2017-09-08 20:04:16 +01:00
UbitUmarov 0ac81f6a09 ubOde: hashSpaces aren't that nice 2017-09-08 19:59:38 +01:00
UbitUmarov ca493a1beb Merge branch 'master' into httptests 2017-09-05 20:25:12 +01:00
Robert Adams 921e3ceb09 BulletSim: Merge branch 'BulletSim2017'
Adds raycast using Bullet physics engine.
2017-09-05 06:24:04 -07:00
Robert Adams 4608b44817 BulletSim: add raycast filtering 2017-09-05 06:19:49 -07:00
UbitUmarov 86493d75fa Merge branch 'master' into httptests 2017-09-04 18:39:42 +01:00
Kevin Cozens e08b051ca6 Fixed typos in comments in osslEnable.ini 2017-09-04 13:30:16 -04:00
Kevin Cozens 05db0c977f Fixed typo in function name HaveNotifiedLogOfScriptStopMistmatch. 2017-09-04 13:28:31 -04:00
Robert Adams f348f7fa90 BulletSim: first version of raycast. Only single contact point and no
filtering.
2017-09-03 17:15:27 -07:00
Robert Adams 6c5cfbafba BulletSim; Update BulletSim.dll's and so's for raycast. 2017-09-03 17:14:59 -07:00
Robert Adams 33e773959f BulletSim: modify taint processing which use locks.
(Merge branch 'bullettaint' into bulletcast)
2017-09-02 13:08:54 -07:00
Robert Adams 0afa3a294a BulletSim: most of the plumbing for raycast. Needs new BulletSim.dll to
work.
2017-09-02 13:06:36 -07:00
UbitUmarov 34da125a4d fix our name is OpenSimulator not OpenSim 2017-08-31 15:25:14 +01:00
UbitUmarov 3fe3471532 improve Prefer32bit configuration option 2017-08-31 15:17:42 +01:00
UbitUmarov c9198dc1d4 .net4.5, take2; vs2010 does not do it, try to make mono5.x msbuild more happy 2017-08-31 13:42:58 +01:00
UbitUmarov 566e79b574 test: .net framework4.5 2017-08-31 13:20:47 +01:00
UbitUmarov a578df9589 CSharp targets name still wrong 2017-08-31 11:29:00 +01:00
UbitUmarov b9fc629bdf fix a whitecode bug, add missing files 2017-08-31 11:23:03 +01:00
UbitUmarov a30d8f8e64 fix a prebuild VS targets assembly name 2017-08-31 09:59:44 +01:00
UbitUmarov 46ead8dcb2 make option Prefer32bit default to false. Thanks Freaky Tech 2017-08-30 22:49:13 +01:00
UbitUmarov 41e8b9f91f update Prebuild with WhiteCore version 2017-08-30 22:24:07 +01:00
UbitUmarov d4a3aa5e08 Merge branch 'master' into httptests 2017-08-29 07:53:34 +01:00
UbitUmarov 22c7450363 fix cache.cs (used on parcels info) 2017-08-29 07:38:52 +01:00
Robert Adams 5c36561424 BulletSim: add clock and change logic for taint processing a little
so taints check if they are not in simulation time and execute
immediately if not.
2017-08-28 15:23:32 -07:00
UbitUmarov e4747b938b update httpserver 2017-08-28 13:33:37 +01:00
UbitUmarov 47648557c1 fix some nunit tests 2017-08-28 10:48:46 +01:00
UbitUmarov b3eec90d3c Merge branch 'master' into httptests 2017-08-25 23:47:40 +01:00
UbitUmarov 396ab1424c in some cases ll TPVs can only see avatar rotations around Z or camera misbehaves 2017-08-25 23:44:59 +01:00
UbitUmarov dfdc3e3adf change camera view constraint. we need to do it a lot more :( 2017-08-25 20:53:07 +01:00
UbitUmarov a1aa2f1add Merge branch 'master' into httptests 2017-08-24 02:18:40 +01:00
UbitUmarov 05b8ead8b2 frozen avatars should not do local teleports. Possible none should not be allowed, but that may be abusive 2017-08-24 02:11:40 +01:00
UbitUmarov c5802c9460 change a few more parcel eject code paths 2017-08-24 01:47:01 +01:00
UbitUmarov 1a7c8893ee add missing file. Also in last commit comment the flag was relative to (un)freeze no t(un)eject 2017-08-24 01:38:04 +01:00
UbitUmarov 74524cb3be (un)eject flag is only lowest bit, only protect active gods from freeze; do not check landing point (telehubs) on eject. 2017-08-24 01:30:57 +01:00
UbitUmarov b1fdb02be1 Merge branch 'master' into httptests 2017-08-22 18:39:30 +01:00
UbitUmarov 1ca70232a5 mantis 8233: media changes flag object updated in region db 2017-08-22 18:37:35 +01:00
UbitUmarov 8434def603 update ODE bins for windows to 0.13.3 ( old ode will now also have stati/dynamic friction, cant avoid it 2017-08-21 05:00:18 +01:00
UbitUmarov 6cf27e2191 ubOde move static/dynamic friction to unmanaged code. Note this now requeries ode version OS0.13.3 currently at opensim-libs repo trunk/unmanaged/ODE-OpenSim-Test 2017-08-21 04:54:01 +01:00
UbitUmarov f9c01db33c Merge branch 'master' into httptests 2017-08-19 22:48:31 +01:00
UbitUmarov 539c006cb8 change SOP updates throttles again. Small values of omega on llSetTargetOmega where skiped 2017-08-19 22:44:18 +01:00
Robert Adams 1fdd56f987 BulletSim: Update macOS version of BulletSim with the actual Bullet
2.86. (the last commit was really an update to 2.82).
    Thanks Gavin Hird.
2017-08-18 12:44:29 -07:00
UbitUmarov e2ca5853fc Merge branch 'master' into httptests 2017-08-18 04:33:21 +01:00
Diva Canto 2df4c1bb91 Replaced libomv dlls with newly compiled ones to solve crashes with pCampBot. See
e8250162cc
2017-08-17 17:43:58 -07:00
UbitUmarov ea53cb0dfa temporary change pcampbot bots lastname convention, to test at osgrid 2017-08-17 22:17:36 +01:00
Diva Canto 3acdae74db Make VERSION_FLAVOUR public too, per request. I question the practice of insulating modules against OS versions this way, but hey! -- different folks, different styles. Given that all other components of the version info are public, there's no reason for keeping this one different. 2017-08-17 11:36:18 -07:00
Robert Adams c804835801 BulletSim: Update macOS version of BulletSim with Bullet 2.86 and collision fixes.
Thanks Gavin Hird.
2017-08-17 10:33:18 -07:00
UbitUmarov c54cd4d808 Merge branch 'master' into httptests 2017-08-17 00:16:29 +01:00
UbitUmarov 218160494e fix llRot2Axis(ZERO_ROTATION) and non normalized inputs, same for llRot2Angle() 2017-08-16 23:44:34 +01:00
UbitUmarov 6d4b0a8ce3 Merge branch 'master' into httptests 2017-08-16 05:05:57 +01:00
Robert Adams 78c78f69b1 Merge branch 'master' into BulletSim2017 2017-08-15 09:04:03 -07:00
UbitUmarov bf84e46c59 update libode for MAC, thanks again Gavin Hird 2017-08-15 16:01:56 +01:00
Robert Adams 9e86721d70 BulletSim: remove chatty debug message. 2017-08-14 21:33:26 -07:00
Robert Adams a754ab0e4f Refactor archive loading to optionally start script engine after loading. 2017-08-14 21:27:53 -07:00
Robert Adams 36ee8e3941 BUlletSim: return better terrain height in
BSTerrainHeightMap.GetTerrainHeightAtXYZ().
Partial fix for Mantis 8011. Problem is that computed terrain height
is different than mesh height in the physics engine. For small shapes,
they would have their position corrected to above terrain so they would
never collide.
2017-08-14 21:20:59 -07:00
Robert Adams 8f3c17189c Merge branch 'master' into BulletSim2017 2017-08-14 18:48:10 -07:00
Robert Adams 76c29cb106 Update BulletSim with corrected collision computations.
A fix for Mantis 8010.
2017-08-14 18:46:16 -07:00
Diva Canto eb837defdf Revert "Let's try giving Common a default constructor instead of the workaround"
This reverts commit 8b6557e377.
2017-08-14 16:55:50 -07:00
Diva Canto 8b6557e377 Let's try giving Common a default constructor instead of the workaround 2017-08-14 16:49:11 -07:00
Diva Canto 6a0b7a607f This is the correct work around. Jenkins is confuzzled. 2017-08-14 16:40:36 -07:00
Diva Canto 40f4b30361 Strengthen the tests for the possibility that SetUpFixture does not run in the beginning. 2017-08-14 16:33:21 -07:00
Diva Canto 26a4c5ff85 Comment to trigger jenkins 2017-08-14 16:15:08 -07:00
Diva Canto 856d218f99 Comment that test dll for now. It's making jenkins fail. 2017-08-14 15:58:42 -07:00
Diva Canto ea448d9d6b Forgot to add this too (nant auto tests) 2017-08-14 15:26:06 -07:00
Diva Canto 5e9b090845 Listed new testable dll in THIS file 2017-08-14 15:13:32 -07:00
Diva Canto af5573728a Another comment for testing jenkins 2017-08-14 15:01:19 -07:00
Diva Canto 3052c7080a Added comment just to trigger jenkins 2017-08-14 14:48:38 -07:00
UbitUmarov 1dbf3215b0 jenkins tests still don't set scene.IsRunning 2017-08-13 06:34:52 +01:00
UbitUmarov 82e2e1e00c change locking on sop updates 2017-08-13 06:04:39 +01:00
Robert Adams 2afd158b1d Update BulletSim with Bullet V2.86.
Should be no functional changes.
2017-08-09 13:43:44 -07:00
Kevin Cozens e9b7971929 Remove profile from basic configuration 2017-08-05 15:44:05 -04:00
UbitUmarov a4e7ab6fcf avoid a null ref 2017-08-03 18:09:26 +01:00
UbitUmarov f658b68181 add a few locks 2017-08-03 17:59:30 +01:00
UbitUmarov 1830387840 Oops fix also default UseMeshiesPhysicsMesh also on ubOde 2017-08-02 03:47:53 +01:00
Kevin Cozens cf855c3842 Corrected index number in ErrorFormat based Exception message 2017-07-30 12:27:27 -04:00
UbitUmarov fc4212bc81 mantis 8222 2017-07-29 17:54:18 +01:00
UbitUmarov 169a50286b upload ODE lib for linux. Plz keep previus version in case something goes wrong. Thanks jakdaniels for the compilation 2017-07-29 00:08:40 +01:00
UbitUmarov ad930f8e41 fix typo 2017-07-28 19:01:07 +01:00
UbitUmarov 21b71ff1d8 partial mantis 8219; on creating or updating items (animationsets, wearables) that reference assets, and user does not have permissions on those, abort and warn, instead of silent invalition of the references to those assets, creating a broken item 2017-07-28 17:36:40 +01:00
UbitUmarov 324bda8ab9 mantis 8218 make Meshmerizer UseMeshiesPhysicsMesh defualt to true, to match stated on ini files. 2017-07-27 16:23:08 +01:00
UbitUmarov 6996bab4a1 display remaining pass time in hours, mins or seconds acording to value 2017-07-26 20:13:30 +01:00
UbitUmarov 0b23964349 change buypass insuficent funds to make clear that its on that region money system (buypass now uses the new MoveMoney) 2017-07-26 19:12:12 +01:00
UbitUmarov 0bbe7bab7b add new funtion bool MoveMoney(UUID fromUser, UUID toUser, int amount, MoneyTransactionType type, string text). this should be called async allowing time for money module to process it. If returns true, the transation did sucess, so if its use was to pay something, the payed item/service must be provided without fail, otherwise another method is needed so a refund is possible 2017-07-26 19:01:11 +01:00
UbitUmarov a91ceae826 add comments to make that more clear 2017-07-26 14:26:28 +01:00
UbitUmarov 025e82341f do not allow setting land passes on group owned land, because currently we cant give money to the group 2017-07-26 14:24:21 +01:00
UbitUmarov 74389c74cb only allow pass renovation on the last quarter of parcel pass time. go back to MoneyMove charging method 2017-07-26 12:58:47 +01:00
UbitUmarov d52a64c7a3 avoid leasing issues on lsl_list on domain crossings. This will make their use even more slow. AppDomainLoading just needs to be set false to have acceptable scripts performance 2017-07-26 12:53:12 +01:00
UbitUmarov 8739ceb00f lets try using older EventManager.TriggerMoneyTransfer to pay parcel passes 2017-07-25 04:18:38 +01:00
UbitUmarov 35b1166ba8 add a few more... 2017-07-25 04:10:22 +01:00
UbitUmarov 1557b78d67 add missing session ID verification 2017-07-25 04:04:55 +01:00
UbitUmarov 1071c92bb0 fix lsl group role powers to change parcel passes 2017-07-25 03:44:52 +01:00
UbitUmarov 86c9c86eeb allow pass recharge with no loss of current time up to 1/4 of parcel pass time. 2017-07-25 03:13:03 +01:00
UbitUmarov c5b34a51fd Ooops.. pay to land owner, not grid. group owned parcel not suported for now. (the pass already expired with kick action) 2017-07-25 02:39:12 +01:00
UbitUmarov 81d1ebc510 add first code to process parcel buy pass. Still testing, and still no kick on expire ( does expire on entry ) 2017-07-25 01:30:35 +01:00
UbitUmarov 13564aa984 only hide parcel info from banned avatars 2017-07-24 22:04:36 +01:00
UbitUmarov 6bf96f83c5 mantis 8212 fix sqlite parameter prefixing 2017-07-23 14:29:11 +01:00
UbitUmarov 8b2e95d1c1 add a rudimentary version control to ubOde meshs cache 2017-07-23 14:23:44 +01:00
UbitUmarov 04eeb0e5cb mantis 8212 do use defined sqlite connection 2017-07-22 23:33:03 +01:00
UbitUmarov 3ae210d36f ubOde: let small spheres still be spheres 2017-07-22 02:04:02 +01:00
UbitUmarov 618e142cf8 ubOde: remove some dead code 2017-07-22 01:45:42 +01:00
UbitUmarov 93582523a7 ubOde: make option MinSizeToMeshmerize visible in OpenSimDefaults.ini 2017-07-22 01:44:29 +01:00
UbitUmarov d71d13f72b ubOde: represent small objects as a box. A object is small is all scale dimensions are less or equal to option MinSizeToMeshmerize (in ODEPhysicsSettings) with default of 0.1. This is needed because this objects hit narrow phase with high overlaps alot more, and so have high cpu cost. 2017-07-22 01:31:39 +01:00
UbitUmarov 98c64f1aa9 ubOde remove ols pseudo convex for sculpts 2017-07-22 00:00:46 +01:00
UbitUmarov c1ab1289ab shape convex should not trigger complex cost (LI) alone 2017-07-21 16:07:04 +01:00
UbitUmarov f6f0b1c513 fix a few EN typos 2017-07-21 14:41:13 +01:00
UbitUmarov 66a5b4d120 ubOde suport convex shapes on all normal prims and sculpts. Since code is experimental this is controled by options ConvexPrims and ConvexSculpts, on section Mesh, that can be set to false in case of problems 2017-07-21 14:11:03 +01:00
UbitUmarov d1f7fac570 fix merge issues 2017-07-20 14:28:26 +01:00
UbitUmarov fe6ad384e4 merge 2017-07-20 11:30:12 +01:00
UbitUmarov 4293b2cb3c fix object updates throttle for scripts doing motion by direct change of position. Most this scripts are bad, making no use of viewers interpolators. Tanks lotek. 2017-07-18 14:09:30 +01:00
UbitUmarov f921ad005f KFM: changes on update method implies other changes. Still not that good. Note: objects motion timing can't be done using timers. On windows at least, those can have jitter of tens of ms 2017-07-17 00:58:35 +01:00
UbitUmarov 59de8fbba0 fix placement of xml ReadEndElement() 2017-07-16 06:10:24 +01:00
UbitUmarov 2f9222bec3 test scenes do not set IsRunning 2017-07-16 05:52:01 +01:00
UbitUmarov 9ae26fc5af store kfm on inventory. this may still be a bit confusing on rez 2017-07-16 05:19:27 +01:00
UbitUmarov 04b97be71e ode does not like null refs 2017-07-16 02:55:39 +01:00
UbitUmarov cd15de628d don't start moving KFM things on region start that where stopped on last shutdown 2017-07-16 01:31:37 +01:00
UbitUmarov 4ef64d4425 trigger moving_end also KFM stop and pause 2017-07-16 01:10:27 +01:00
UbitUmarov 101413ddd9 make KFM use scheduled terse updates. This may increase some rubber band, but is needed, and should work better with recent changes on sop terseupdates control 2017-07-16 00:48:04 +01:00
UbitUmarov ad46a29d9e Ooopsss 2017-07-15 20:59:16 +01:00
UbitUmarov 4b7f79e296 fixes and changes on TreePopulatorModule. Please read OpenSimDefaults.ini
[Trees] section. Does need more work, and some hardcode settings may not
be the optimal still"
2017-07-15 04:07:03 +01:00
UbitUmarov 8b16131206 add Util.GetTimeStamp() that returns the stamp in seconds; use it on ubOde; separed land collsions dispatch from the others... 2017-07-13 20:21:18 +01:00
UbitUmarov 4fe13ef639 update libomv fixing EnUsCulture 2017-07-13 05:21:00 +01:00
UbitUmarov a17abe7518 typo fix 2017-07-13 04:28:35 +01:00
UbitUmarov bd249bdf5b replace the wrong libOMV user modifiable Utils.EnUSCulture by our own no User modifiable Culture.FormatProvider, and also for internal coerence. We do use the libomv on other code paths, so that must be fixed 2017-07-13 04:14:33 +01:00
UbitUmarov 61e3fe42bd fix wrong test 2017-07-13 03:26:43 +01:00
UbitUmarov 51d32e3bed add more missing en-us culture on scene serializer writes 2017-07-13 02:57:57 +01:00
UbitUmarov 457551d069 rename SOG.UpdatePrimFlags as just UpdateFlags since this is relative to the group never individual prims/parts and so confusing 2017-07-12 10:28:11 +01:00
UbitUmarov aff9c345dd osSetParcelDetails: add more land update code 2017-07-12 07:27:21 +01:00
UbitUmarov a069ed09a8 osSetParcelDetails: make seeAVs send updates. This is a temporary patch, this function does need to call a framework land function that deos issue proper updates about all fields to all cleints. ( sounds will not stop/start also for now) 2017-07-12 03:47:34 +01:00
UbitUmarov 3847f861e3 osSetParcelDetails: allow parcel group to be cleared also 2017-07-12 01:52:01 +01:00
UbitUmarov c8a9b0321f osSetParcelDetails: place hard restrictions on change owner,claimdate (both estate owner or manager) and group (same plus parcel owner that also needes to be a member of the new group); add PARCEL_DETAILS_SEE_AVATARS, PARCEL_DETAILS_ANY_AVATAR_SOUNDS and PARCEL_DETAILS_GROUP_SOUNDS 2017-07-12 01:44:34 +01:00
UbitUmarov f5324833ee remove wrong comment on lsl object rez. we can't add delays on async process 2017-07-11 02:47:37 +01:00
UbitUmarov 72bce8c4b4 do lsl object rez checks on script thread before wasting time possible creating a new poll thread 2017-07-11 02:33:48 +01:00
UbitUmarov 40b16f1705 SimpleAngularDistance update prioritization scheme ameks no sense without ordered dequeue of the updates 2017-07-10 22:01:38 +01:00
UbitUmarov f8cdccc167 a few more changes on entities updates 2017-07-10 21:12:34 +01:00
UbitUmarov 9dbcb4e5f6 on entities updates throttles vectors needed to be compared as vectors, not just their norms 2017-07-10 19:31:35 +01:00
UbitUmarov 63e3fc21ef fix the name of a funtion on last commit 2017-07-10 13:48:28 +01:00
UbitUmarov cc5d6f6b7b throttle collision sounds on a SOG. 2017-07-09 00:14:30 +01:00
UbitUmarov ead95e85c5 bug fix: dynamic testures set to ALL_SIDES, preserve other face data already present 2017-07-07 04:57:57 +01:00
UbitUmarov dfef16297b ubOde don't use old ode body sleep option, a few changes on sleep control, update ode.dll (windows, others needed) (keep older versions.. bc.. well bugs happen) 2017-07-07 01:49:34 +01:00
UbitUmarov 1dc56eb15f ubOde: but only do that if sphere is physical.. 2017-07-03 23:38:55 +01:00
UbitUmarov 39751891f4 ubOde: dont do avatar step climb on small true spheres. lets play simple football 2017-07-03 22:47:27 +01:00
UbitUmarov c5a4c299cb update ode.dll ( windows) 2017-07-02 05:59:49 +01:00
UbitUmarov f3a920237b oops i forgot the avatar knees bending on ramps... so go back.. 2017-07-02 01:34:06 +01:00
UbitUmarov edc7575f9e a few changes to ubOde avatar collisions 2017-07-01 01:43:58 +01:00
UbitUmarov 965d004fbe do calls to m_host.AddScriptLPS() on the right place on osslm this stat is of course still wrong LPS does not mean api function calls 2017-06-30 22:39:19 +01:00
UbitUmarov 6b0a3e981c put osGetAgentIP() in threat control with level Severe so it can be disabled even for inworld administrators as needed on some grids. rearrage the osslEnable.ini file segregating the funtions only listed for information 2017-06-30 22:04:56 +01:00
UbitUmarov aa4eb2bc14 update ode.dll (windoes only. need bins for others :( ) 2017-06-30 00:30:46 +01:00
UbitUmarov cb2607d4fa fix scripts xmlrpc threads names 2017-06-29 21:17:41 +01:00
UbitUmarov 190874344b ScriptsHttpReq does not need a permanent thread 2017-06-29 21:14:20 +01:00
UbitUmarov 6bac44e767 bug fix 2017-06-29 00:42:35 +01:00
UbitUmarov e243dd0519 put back getAgentIP bug restricted, script owner must be a Administrator (god) 2017-06-28 02:19:27 +01:00
UbitUmarov b0a0163253 BUG FIX: change lludp hovertext utf-8 cut point. Thx djphil 2017-06-28 01:29:49 +01:00
UbitUmarov 936aee412d remove osGetAgentIP() this was not a good idea to have :( 2017-06-27 01:41:06 +01:00
UbitUmarov 5242853d68 dont list deleted ones, that still don't know they are gone 2017-06-26 20:55:44 +01:00
UbitUmarov b319977a3f dont list deleted ones, that still don't know they are gone 2017-06-26 20:51:40 +01:00
UbitUmarov e53f439981 add osGetNPCList() 2017-06-26 20:42:49 +01:00
UbitUmarov b59ce7c968 also on the actual source file 2017-06-26 20:28:16 +01:00
UbitUmarov 3fda7c6315 take a few more out of level check 2017-06-26 20:23:24 +01:00
UbitUmarov 9ea6580c37 update osslEnable.ini. functions that have no level check are still listed but commented, just to be more visible 2017-06-26 20:05:11 +01:00
UbitUmarov f660aa37ac add similar restrictions to osObjectTeleport :( 2017-06-26 19:40:20 +01:00
UbitUmarov cbd0af3cab let osTeleport* always work on script prim owner 2017-06-26 18:26:45 +01:00
UbitUmarov ef74efeaa7 and add a missing bracket :) 2017-06-26 09:18:31 +01:00
UbitUmarov e075cf4461 fix bad english 2017-06-26 09:08:23 +01:00
UbitUmarov 0c5f412ed4 put back restriction that on osTeleport the target must be on land owned by the script owner or this is a estate manager/owner, or target did gave script permission. 2017-06-26 02:49:20 +01:00
UbitUmarov 0418542344 some shortcuts on local osTeleport, reduce its time penalty, do it with script thread 2017-06-26 00:18:46 +01:00
UbitUmarov 3ce909528d change Backup calls overlap control code 2017-06-25 15:42:36 +01:00
UbitUmarov 84abdf866a add respective ossl helper funtion osDrawScaleTransform(string drawList, LSL_Float x, LSL_Float y) 2017-06-25 02:26:36 +01:00
UbitUmarov a9a44eaeb5 add vectorrender string command ''ScaleTransf x,y;''. this allows scaling of objects to draw next. -1,1 will make text be drawn with x direction flipped (it is like the texture scale) 2017-06-25 02:17:02 +01:00
UbitUmarov cb8975e567 add string osDrawTranslationTransform(string drawList, LSL_Float x, LSL_Float y), string osDrawRotationTransform(string drawList, LSL_Float x) and string osDrawResetTransform(string drawList) helper functions for the new vector renderer comands. Removed ThreadLevel check of similar funtions that had it None, and actually only set strings 2017-06-24 23:04:37 +01:00
UbitUmarov 5d776fca3a add dyn textures vectorrender comands ''ResetTransf;'', ''TransTransf x,y;'' and ''RotTransf x'' string only, no ossl helper api still 2017-06-24 21:42:11 +01:00
UbitUmarov 1a8a77c41e revert the thread level change; remove unused dynamic texture timer from internal code; let blend alpha work if < 255; let blend work with the selected face; etc 2017-06-24 09:24:56 +01:00
UbitUmarov 8d1dd44edb simplify vectorrender background draw 2017-06-24 07:39:22 +01:00
UbitUmarov ed8fc359f3 change thread level of osSetDynamicTextureDataBlendFace to VeryHigh 2017-06-24 06:11:10 +01:00
UbitUmarov 72db6f76b5 remove a DynamicTexture leak, make it actually return the new texture ID to ossl, do delete previus texture from local cache if temporary,at least on same cases... but still very broken.. 2017-06-24 05:22:02 +01:00
UbitUmarov ae4266916c add string osSetDynamicTextureDataFace(string dynamicID, string contentType, string data, string extraParams, int timer, int face) to easy only setting a prim face 2017-06-24 04:23:13 +01:00
UbitUmarov c3dbf91152 osDrawFilledEllipse or string comand FillEllipse identical do Ellipse one 2017-06-24 03:21:23 +01:00
UbitUmarov 191661b51d a few more changes to iar/oar assets save error/warning to show problems known to be asset errors 2017-06-24 02:01:48 +01:00
UbitUmarov 0a1f497dee code actually has no ideia if a id is a asset or not and does try to handle all as assets, it really can't report errors. Change messages to make more clear they are only warnings and may mean nothing at all 2017-06-23 19:55:23 +01:00
UbitUmarov 83e443bca1 do the same on OAR saves 2017-06-23 17:48:59 +01:00
UbitUmarov 95595a8360 coment out missing or damage assets messages in uuidgather that are not very usefull. In IAR save display information about items that contain references to broken assets. Note that as explained on mantis 8195 this can't will not detect all problems 2017-06-23 17:23:28 +01:00
UbitUmarov 3c6790b061 several changes to iar/oar assets error reports 2017-06-23 15:50:16 +01:00
UbitUmarov 28caf1e089 actually iar do it for iar 2017-06-22 22:09:00 +01:00
UbitUmarov cbae148f68 show the count of broken assets we now have from gather on iar/oar pre save information 2017-06-22 21:48:26 +01:00
UbitUmarov aea49070c9 change uuidgather a bit more 2017-06-22 21:37:51 +01:00
UbitUmarov 66c8b7202b split some asset uuids gather i stages with dif possible errors, and dont let them be fatal 2017-06-22 19:38:38 +01:00
UbitUmarov 11d3860781 avoid some broken object assets present in osgrid inventories due to past problems, etc 2017-06-21 21:38:12 +01:00
UbitUmarov 1bfe4da378 do not try to store on oars temporary or in transit objects ( they may be deleted during the save) 2017-06-21 20:15:35 +01:00
UbitUmarov 637d35631c make oar/iar assets writer be done by caller thread like the rest of the
oar/iar save. This may look more painfull but should reduce errors and
threads fights. Fill lucky i just don't stop the entire simulation during
this
2017-06-21 18:40:53 +01:00
UbitUmarov 70da902732 changes to AutoBackModule. Store folder and number of days expire is now also only defined in OpenSim.ini and so same for all regions. 2017-06-21 13:35:36 +01:00
UbitUmarov 36442c004f changes to AutoBackModule. Add option ALL to dooarbackup to save all regions in instance 2017-06-21 03:56:43 +01:00
UbitUmarov 651952e01e changes to AutoBackModule. Time interval is now unique and only definable on OpenSim.ini. All enabled regions will be saved in sequence whne it expires. Interval is time since last region save end, so will not follow wall clock. This reduces the chance of overlapped saves. Console command renamed to dooarbackup to be more distint from db backup. Lost the region load checks, to put back later 2017-06-21 03:31:07 +01:00
UbitUmarov 79e166e9aa revert EnvironmentTick back to orignal clock, since change may cause issues on some code paths. Clean a bit get mesh and get texture throttle 2017-06-19 05:22:38 +01:00
UbitUmarov 3fc6f62c45 Merge branch 'master' into httptests 2017-06-19 03:20:40 +01:00
UbitUmarov fe0fce424c a defual can me comented out 2017-06-19 03:19:55 +01:00
UbitUmarov 4df19ece53 framework main thread pool is always active and in use ( even id hard to catch) so show in on show stats. Disable ServerStatsCollector by default, since most don't use it, Adicionally it uses shared framework performance counters system that may be affected if a region crashs 2017-06-16 18:16:26 +01:00
UbitUmarov 10d526f961 Merge branch 'master' into httptests 2017-06-16 02:43:36 +01:00
UbitUmarov 822574df9f change the clock source for EnvironmentTickCount so it does get a bit more resolution if avaiable (1ms) specially on windows. This until all calls to this are removed. Coment out some stats in workpool/threads creation path 2017-06-15 20:28:20 +01:00
UbitUmarov 969d5f742c update inventory item permissions on deattach 2017-06-15 04:20:32 +01:00
UbitUmarov 1c64b5018a fix llsd DeserialiseOSDMap cast from boolean to int, this seems to fix alchemy beta 5.0 scripts upload, but this viewer seems to be of no use for opensim, sice it does crash.. insists lbsa is at second life etc 2017-06-14 22:05:53 +01:00
UbitUmarov d9a300fa8e some cleanup.. remove some stats that only some do look at once on a lifetime 2017-06-14 20:19:13 +01:00
UbitUmarov 8e3a50212c remove options about script compilers the got back somehow on defaults also 2017-06-14 16:03:03 +01:00
UbitUmarov ef87370cf1 remove options about script compilers the got back somehow 2017-06-14 15:58:02 +01:00
UbitUmarov 84946e3061 Merge branch 'master' into httptests 2017-06-14 03:04:14 +01:00
UbitUmarov 5e67bd5778 main generic use JobEngine also does not need a permanent thread.. actually doesn't even seem to be in use 2017-06-14 00:51:22 +01:00
UbitUmarov 614a5266c5 guess HGEntityTransferModule jobengine does not need a permanet thread 2017-06-13 22:45:31 +01:00
UbitUmarov ed8526bcfb coment out tests that now depend on active thread pool 2017-06-13 20:34:21 +01:00
UbitUmarov ad43cc6784 change llclient async udp packets processing. Removed the shared Jobengine that made only one thread do some packets for all users, and removed the FireAndForget, so each user could issue a unlimited number of threads. Added a new JobEngine per client, so each gets at most one thread,and that thread can be released if iddle (for 5 seconds ) 2017-06-13 19:04:18 +01:00
UbitUmarov 482ff06e13 make JobEngine be a workitem of mail pool (smartThread), with the option to release thread after a idle time, so is free to do other service elsewhere 2017-06-13 18:50:34 +01:00
UbitUmarov 5ce15566ac add option for Fireandforget not timeout (our access to main smartThreadPool) 2017-06-13 18:39:42 +01:00
UbitUmarov f33a871d61 hope gc does remove a little dic and contents 2017-06-13 14:15:28 +01:00
UbitUmarov fd8836e493 dont let time go back 2017-06-13 14:09:34 +01:00
UbitUmarov 9526a96b4f some cleanup 2017-06-13 13:22:01 +01:00
UbitUmarov 3ba63dde6e udp is not tcp. If mono versions have bronke udp sento, better update, also having 300 threads because object select is not funny 2017-06-13 12:17:39 +01:00
UbitUmarov e650a4ff16 remove excessive notion of paralelism 2017-06-13 08:56:21 +01:00
UbitUmarov 25371933b4 update Robust32.exe build files 2017-06-12 20:36:36 +01:00
UbitUmarov 46ba2ead1a add Robust32.exe so recovering the option to run it also in 32bit on windows 2017-06-12 20:28:14 +01:00
UbitUmarov a18d45fbdc fix some issues on ubOde physics shape type changes 2017-06-12 16:19:29 +01:00
UbitUmarov f62400c4ca improve english on few messages (thx) 2017-06-12 13:34:39 +01:00
UbitUmarov 70be8ba6de make some web request errors visible, so cause of later asset not found is clear 2017-06-12 13:29:14 +01:00
UbitUmarov 617f42bcfa try to mk jenkins happy 2017-06-12 01:32:18 +01:00
UbitUmarov dd7ab862ab stop doing UpdateMovementAnimations on avatar collisions, that may cause incorrect changes 2017-06-12 01:07:38 +01:00
UbitUmarov 953872510f add/replace sources of OpenSim32.exe 2017-06-11 22:36:08 +01:00
UbitUmarov d0afd4335c fix a error message 2017-06-11 22:32:56 +01:00
UbitUmarov 5e83c2e422 forget about stupid mono 32bit 2017-06-11 19:29:59 +01:00
UbitUmarov 8c5f09f44b actually.. its opensim, use same log file name in 32b mode 2017-06-11 18:56:34 +01:00
UbitUmarov bd2da771a4 remove a ref to old 32bitlauncher 2017-06-11 18:38:54 +01:00
Kevin Cozens 46c8c4854e Set the execute bit on the bin/opensim*.sh files 2017-06-11 13:30:12 -04:00
UbitUmarov 7941f8da23 add opensim.sh and opensim32.sh for linux, replacing old opensim-ode.sh 2017-06-11 18:12:25 +01:00
UbitUmarov 08659811c7 put back opensim 32bit launcher, renamed as OpenSim32.exe. This allows opensim to run in 32bit mode on 64bit machines. Possible most opensim regions should be running like this. 2GB of Virtual memory is still a lot on memory 2017-06-11 13:04:34 +01:00
UbitUmarov 5842d5f7b0 revert. The .net concurrent objects look nice, but mono5 cpu load with them does not 2017-06-10 13:58:16 +01:00
UbitUmarov 73aa752034 replace some locked objects by .net4.0 concurrent objects 2017-06-10 04:18:31 +01:00
UbitUmarov b5910cfdb7 merge 2017-06-10 02:48:51 +01:00
UbitUmarov be975d1e89 add a adicional in transit flag to signal HG tps, and use it to ignore usernames requests sent to start region during tp; don't send unknows display names ( getdisplaynames cap ) 2017-06-09 23:27:33 +01:00
UbitUmarov e8165a7b51 only silent remove threads from watch list if they stopped ( ie still consider aborted etc ) 2017-06-09 20:14:56 +01:00
UbitUmarov f69e48bedc make SendCoarseLocations async, since it is http. Make some actions use thread from pool and not a new one. Threading does need a deep cleanup one of this days. This stops mantis 8183 warnings, but as side effect only 2017-06-09 17:32:07 +01:00
Kevin Cozens 3cddfddc3f Minor changes to commented text in bin/OpenSim.ini.example 2017-06-09 10:14:09 -04:00
Kevin Cozens 0ac6b74c5e Fixed typo in log message 2017-06-09 10:14:09 -04:00
UbitUmarov d12957dc2c still losing time with of halcyon incompatibile oars... cathch exceptions of the function that actually throws; Reduce log spam; don't let a broken MOAP stop all object deserialization. Fixing MOAP does not mean halcyon oars issues are fixed, just one. And really we should not even try to go against halcyon decison to be incompatible.(our MOAP encoding did not change since 2010) 2017-06-09 12:14:13 +01:00
Robert Adams 5bfe8b18fe Another attempt at parsing MOAP <Media> elements in OAR files.
Seems there are multiple interpretations of the format of the content of the
<Media> element in OAR files. OpenSimulator (for reasons lost in the mist of time)
escapes the XML in the element and then reparses it was a separate XmlReader.
Other simulators fill the <Media> element with regular XML.

This patch parses the <Media> escaped XML content as it always has and, if
the parsing fails, falls back to trying to parse the pure XML.
2017-06-08 21:41:34 -07:00
UbitUmarov 1e3a19e673 bug fix plus some cleanup 2017-06-09 00:15:53 +01:00
UbitUmarov ef2fd8fcea keep the reverted code, that does work. Our code likes to have pbs.Media == null when there is no MOAD defined, so handle possible odd oars that may have llsd <array /> on that case 2017-06-08 20:47:51 +01:00
UbitUmarov 29f2421d4f revert fa5bf4fd0b for test 2017-06-08 11:45:33 +01:00
UbitUmarov 7bea4f1578 Merge branch 'master' into httptests 2017-06-07 20:12:49 +01:00
UbitUmarov 02b51b84f4 so no real need for Maintenance thread.. so removed 2017-06-07 19:09:16 +01:00
UbitUmarov 2d93008bd9 course locations is a also heartbeat job (for now sync) 2017-06-07 18:52:56 +01:00
UbitUmarov eca89c6e61 remove some more dead scene options 2017-06-07 18:15:15 +01:00
UbitUmarov c8b3925085 remove nonsense SendPeriodicAppearanceUpdates. if we need such a thing, then a lot is broken. Remove duplicated CleanTempObjects() call, rename BackupWaitCallback thread as BackupWorker ( still didn't found cause for mantis 8783) 2017-06-07 18:04:02 +01:00
UbitUmarov 7d58b73bbc some changes on pollevent 2017-06-06 21:55:47 +01:00
UbitUmarov 8971e9f126 Merge branch 'master' into httptests 2017-06-06 21:47:55 +01:00
UbitUmarov 9011ca8461 set optional group position and rotation before attach to scene 2017-06-06 20:38:17 +01:00
UbitUmarov 773914591d Merge branch 'master' into httptests 2017-06-06 03:28:30 +01:00
UbitUmarov a23f99366f bug fix: handle current region on GetChildAgentsToClose 2017-06-06 03:22:11 +01:00
UbitUmarov 258d169392 Merge branch 'master' into httptests 2017-06-06 00:30:01 +01:00
Robert Adams fa5bf4fd0b Correct parsing of 'Media' XML element in PrimitiveBaseShape when reading an OAR file.
The code used to call Serializer.ReadElementContentAsString() and then expected to
pass the XML to PrimitiveBaseShape.FromXml to parse. This would throw as
ReadElementContentAsString does not allow any children of the element.
Reading with Serializer.ReadInnerXml() was the fix.
This was only not a problem because most often shapes don't have media and
most simulators don't output anything if the media array is empty.
2017-06-04 20:51:56 -07:00
UbitUmarov aea282ba38 Merge branch 'master' into httptests 2017-06-03 07:20:31 +01:00
UbitUmarov 4320758d97 remove redundant UpdateMovementAnimations(); 2017-06-03 07:19:20 +01:00
UbitUmarov 01bd578bb0 Merge branch 'master' into httptests 2017-06-03 07:08:43 +01:00
UbitUmarov f26ad07ce1 add a delayed stop so fast tap on move keys does not stop the avatar in some cases 2017-06-03 07:01:07 +01:00
UbitUmarov 67e540e05c cross mouse buttons state 2017-06-03 04:28:43 +01:00
UbitUmarov 12a6625dc7 fix MouseDown in case it gets any use 2017-06-03 03:48:49 +01:00
UbitUmarov 7310b7625e move a execution overlap guard to end of job 2017-06-02 12:58:04 +01:00
UbitUmarov de153c2b62 Merge branch 'master' into httptests 2017-06-02 06:26:20 +01:00
UbitUmarov b920f784ea avoi null refs on tests simple clients 2017-06-01 00:14:59 +01:00
UbitUmarov c68e7b6621 change child agents close control; disablesimulator is not a caps event message 2017-05-31 23:31:02 +01:00
UbitUmarov 5c156508e2 mantis 8182: update/fix GenerateRandomAnimation(). not updating libomv avatar data bc have no idea why do do have it, so leave it to who does know 2017-05-31 12:33:35 +01:00
UbitUmarov 55babdc160 Merge branch 'master' into httptests 2017-05-31 07:21:21 +01:00
UbitUmarov 7217c20291 we don't need to keep refs to baked textures assets 2017-05-31 07:12:03 +01:00
UbitUmarov f5f0fa5d1f we don't need to keep refs to baked textures assets 2017-05-31 06:18:05 +01:00
UbitUmarov 74da81890c oops.. 2017-05-31 06:04:59 +01:00
UbitUmarov 720a69a49b remove the option to store baked textures on assets service, thats suicide use xbakes 2017-05-31 04:47:59 +01:00
UbitUmarov b1c585718c remove debug messages 2017-05-31 04:30:00 +01:00
UbitUmarov e5991124dd merge LocalNeighbourServicesConnector and RemoteNeighbourServicesConnector in single NeighbourServicesOutConnector 2017-05-31 01:29:38 +01:00
UbitUmarov 0fa3af96a4 remove anoying crossing messages on open borders 2017-05-30 16:51:49 +01:00
UbitUmarov 79b2926ce1 do another dns request via new cache. My problems bf wheren't mono after all, but ubuntu systemd.resolver and google public dns, killing one and not using other did improve dns a lot 2017-05-30 15:34:22 +01:00
UbitUmarov 90da5280af put back soft http close 2017-05-30 09:01:39 +01:00
UbitUmarov e5bebe3a32 webrequests serialiazation per endpoint its now ServicePointManager job 2017-05-30 08:20:58 +01:00
UbitUmarov 91caf98308 change servicePoint dns expire also to 5min, let the endpoints expire slide. This should reduce impact of absurd dns fails observed on my test ubuntu VM 2017-05-29 07:48:09 +01:00
UbitUmarov a317bba8cf cache endpoints (and other paths) dns requests for 5min, this delay should be acceptable in all cases ? 2017-05-29 07:11:13 +01:00
UbitUmarov 0f0673552c remove a unnecessary dns check 2017-05-29 06:50:55 +01:00
UbitUmarov 8f86de265c some cleanup and assume Linux/mono DNS is just broken... 2017-05-29 05:22:21 +01:00
UbitUmarov 7be6e16555 no.. still a fail 2017-05-29 03:41:09 +01:00
UbitUmarov 27afe136d4 mono is a total crap 2017-05-29 03:13:56 +01:00
UbitUmarov 2c19d08448 cleanup util.cs get dns 2017-05-29 02:07:53 +01:00
UbitUmarov 6d23e0bc31 add temporary debug msgs 2017-05-29 01:27:02 +01:00
UbitUmarov d94b2e6f6d remove a now anoying message.. 2017-05-29 00:20:14 +01:00
UbitUmarov 5274a3181e enclose GetRequestStream on try/catch 2017-05-28 23:54:43 +01:00
UbitUmarov 99111e5052 enclose GetRequestStream on try/catch 2017-05-28 23:51:13 +01:00
UbitUmarov 687c01b29e need to delay even more agent close after teleport to compensate for slow machines and user connections. This one of current tp teleport protocol flaws 2017-05-28 03:17:34 +01:00
UbitUmarov d1306c8976 a null ref check left behind on previus commits 2017-05-28 02:11:40 +01:00
UbitUmarov 572e84c822 make use of a rare thing called StringBuilder on LSL_List. LSL_List uses may need a revision to make sure they are passed by ref and not by value, with necessary adjustments. This does not have much impact on AppDomains, since if they cross, they are always serialized. Since lists are important parts of LSL, the AppDomainLoading option needs to be replaced by something else 2017-05-28 01:56:52 +01:00
UbitUmarov 18f1ea1086 make LSL_list a CLASS again. Now we need to it allover again. Scripts need to be recompiled ( delete contents of bin/ScriptEngines) 2017-05-28 01:11:53 +01:00
UbitUmarov 6a0eba3d7b disable llhttprequests secure con, since it still collides with main ssl settings 2017-05-27 14:39:56 +01:00
UbitUmarov a2c824e124 get back to .net4.0 for now 2017-05-27 13:56:28 +01:00
UbitUmarov 2603363e3e update test httpserver, be more tolerant on protocols 2017-05-27 12:51:32 +01:00
UbitUmarov a7db505caf stupid mono5 doesn't know about Subject Alternative Name IPAddress 2017-05-27 12:38:31 +01:00
UbitUmarov 117e6ec266 fix wrong cert ip compare 2017-05-27 08:30:12 +01:00
UbitUmarov 6609965f6e ops no 2017-05-27 06:50:45 +01:00
UbitUmarov d5d09253bc add test cert 2017-05-27 06:47:54 +01:00
UbitUmarov 582dc75381 remove a accent from a method name 2017-05-27 06:30:23 +01:00
UbitUmarov c54985f8a1 Merge branch 'master' into httptests 2017-05-27 05:47:05 +01:00
UbitUmarov f7ae87a0d5 minor cleanup 2017-05-27 05:44:50 +01:00
UbitUmarov 289d4ca128 minor cleanup 2017-05-27 05:41:40 +01:00
UbitUmarov 2be362bd67 lose a ref 2017-05-26 21:30:06 +01:00
UbitUmarov e7c2674dec cleanup (grid)region info endpoint; add log to try to find some xml decode issues 2017-05-26 21:26:51 +01:00
UbitUmarov 8f10db0a6a mantis 8181: don't try to delete contents of a non exitent folder 2017-05-26 05:32:59 +01:00
UbitUmarov 426f2130fc change opensim-ode.sh to use the ode engine defined on opensim.ini 2017-05-26 01:50:54 +01:00
UbitUmarov 5287489a3c avoid some wrong watchdog timeouts 2017-05-26 00:53:21 +01:00
UbitUmarov 7a82c7c5b2 make BlockingQueue.Dequeue timeouts more coerent (just less than watchdog timeout) 2017-05-26 00:47:08 +01:00
UbitUmarov 8d8236cfb2 missing file change.. actually use watchdog threads on assetsconnector and
avoid null refs on JobEngine
2017-05-26 00:34:46 +01:00
UbitUmarov d90b68c2a6 change wrong watchdog stopped thread check code, and don't log it 2017-05-26 00:05:35 +01:00
UbitUmarov 2777995331 Merge branch 'master' into httptests 2017-05-25 10:23:52 +01:00
UbitUmarov 31b4a31246 add some checks for valid endpoints 2017-05-25 09:46:29 +01:00
UbitUmarov 772c5b7db0 move assetsconnector threads to whatchdog; Abort all alive threads known to watchdog before exit 2017-05-25 06:05:02 +01:00
Geir Nøklebye 0d31898fd6 Update macOS version of libode to 0.13.2. The library is build as a fat library with both 32 and 64 bit code. O3 optimization and built with macOS 10.11 SDK.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-25 05:03:27 +01:00
UbitUmarov e5377eb839 use threads from main pool on assetsconnector 2017-05-25 04:51:45 +01:00
UbitUmarov 65e9421058 minor changes 2017-05-25 04:24:23 +01:00
UbitUmarov 8195cd5153 another one 2017-05-25 02:24:15 +01:00
UbitUmarov b6c23fe911 make a few more threads background ones 2017-05-25 02:01:36 +01:00
UbitUmarov 4286ae43f2 make some threads background ones 2017-05-25 01:51:53 +01:00
UbitUmarov 9a1d94f455 remove use of libomv BlockingQueue 2017-05-25 01:28:02 +01:00
UbitUmarov dca3a45803 add a bit more pre exit cleanup 2017-05-24 22:17:04 +01:00
UbitUmarov 2008e65695 mantis 8780 replace ode bins for linux with ones compiled against older Glibc, Thanks Jak 2017-05-24 21:08:21 +01:00
UbitUmarov 8989e8ef3a give up on the code to stop AsyncCommandManager. It fails with many scripts running, and its only done deep on exit code. It is a backgroud thread should not block exit and never did 2017-05-24 02:19:25 +01:00
UbitUmarov c0bfaac0ac merge master 2017-05-23 07:35:02 +01:00
UbitUmarov 07e614a32c dont log timeouts on stopped threads 2017-05-23 06:38:19 +01:00
UbitUmarov 3c97bb1e6f fix lock position removing a not necessary function 2017-05-23 06:03:51 +01:00
UbitUmarov e1aa591815 allow new thread creation if it was aborted on AsyncCommandManager 2017-05-23 05:59:14 +01:00
UbitUmarov d5e8e116d4 protect AsyncCommandManager thread from fails on the several things it checks 2017-05-23 05:41:04 +01:00
UbitUmarov 8e777d50a6 only remove AsyncCommandManager thread when last instance is deleted 2017-05-23 05:34:25 +01:00
UbitUmarov e69057a1b6 dont fail saving a OAR because of a broken material 2017-05-23 04:21:03 +01:00
UbitUmarov f3eb73926e stop a few more threads on exit 2017-05-23 04:05:31 +01:00
UbitUmarov 928733efc9 please DIE! PLEASE?? 2017-05-23 03:26:32 +01:00
UbitUmarov 7b80bcc57a no all mono versions know DnsRefreshTimeout 2017-05-23 00:52:40 +01:00
UbitUmarov c080d9fa23 remember mono about the default for DnsRefreshTimeout 2017-05-23 00:10:11 +01:00
UbitUmarov 24885819fc check XFF headers of caller, but be quiet about them 2017-05-22 22:05:56 +01:00
UbitUmarov 4da5d249d8 receivers can't tell if there where proxies on path unless they look 2017-05-22 21:22:04 +01:00
UbitUmarov ea88927a65 remove some code for NAT that was disabled by its author Adam Frisby since 2009, and i don't see how to mk work with current viewers at that point at least 2017-05-22 20:18:01 +01:00
UbitUmarov 73222e4dd4 fix IClientIPEndpoint broken by justin long ago.. but stop using it
except on SceneBanner, later it my be also removed from there and
 everywhere
2017-05-22 19:16:42 +01:00
Geir Nøklebye 8f9256ea1c PGSQL: Another missing cast in XInventoryData
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-22 16:24:52 +01:00
UbitUmarov fcb435deb4 make sure we drop requests if DoHTTPGruntWork fails 2017-05-22 05:53:59 +01:00
UbitUmarov bad00670a9 disable keepalive on llHttpRequest 2017-05-22 05:02:42 +01:00
UbitUmarov 0320225ca8 reenqueue poll events while conn is open, and not expired 2017-05-21 07:02:35 +01:00
UbitUmarov 7c3200b393 cross avatar group info also if title is empty string 2017-05-21 05:16:18 +01:00
UbitUmarov e520dba717 Merge branch 'master' into httptests 2017-05-21 02:20:40 +01:00
UbitUmarov a2c2456076 remove LongPoll type and queues. Events should now have reduced latency also. About previus commit, it maybe a modified ingen-e3s-v1.33 script that is broken, and not the original version, can't tell 2017-05-21 02:11:53 +01:00
UbitUmarov 319ccf17c8 add a bit more protection for broken scripts like ingen-e3s-v1.33 2017-05-21 01:52:27 +01:00
UbitUmarov c7fdb2ec53 on recover form nom finite avatar pos, don't add it physics it it had none 2017-05-21 00:52:18 +01:00
UbitUmarov a5e3aab575 fix a null ref in ubOde character 2017-05-20 23:37:14 +01:00
UbitUmarov 046ec66ff9 fix a cast that makes LitJson unhappy 2017-05-20 22:21:27 +01:00
UbitUmarov 02a4298b02 mantis 8172: fix llList2Json() in case of vector or rotation types 2017-05-20 21:29:33 +01:00
UbitUmarov 49d42ee08a mantis 8171 fix redirection on llHttpRequest 2017-05-20 17:56:04 +01:00
UbitUmarov 774e00b3ee merge 2017-05-20 17:02:25 +01:00
UbitUmarov 78c4f8000e Merge branch 'master' into httptests 2017-05-20 14:30:49 +01:00
UbitUmarov 9397b358d3 mantis 8170: let physics know Always_run on adding the avatar 2017-05-19 19:51:23 +01:00
UbitUmarov 52dd683326 fix a null ref on parcels join 2017-05-19 18:03:02 +01:00
UbitUmarov 7c9615f000 fix land parcel group been lost on region upload 2017-05-19 17:35:49 +01:00
UbitUmarov 2717ef5da9 change some confusing comands help 2017-05-19 05:34:49 +01:00
UbitUmarov 40091f9be5 Merge branch 'master' into httptests 2017-05-19 03:23:57 +01:00
UbitUmarov ef35805176 reWrite lsl json functions, forward slash is not escaped as LitJson spec; code can use some cleanup. Scripts need to be recompiled 2017-05-19 03:08:35 +01:00
UbitUmarov c5d0c69a35 update libomv LitJSON to version 0.9.0 2017-05-19 02:51:37 +01:00
UbitUmarov c28430d527 oops... 2017-05-15 18:12:17 +01:00
UbitUmarov c74e0e2d9b remove a Paralell.For (actually not used). That kind of fine gained multitask makes no sense on already heavy multitasked server application like opensim. CPU cores are already busy or needed elsewhere. 2017-05-15 18:10:08 +01:00
Geir Nøklebye 7f163e8f76 Update NPGSQL from version 2.0.14.3 to 2.1.3. This is a relatively big update where 2.1.0 has a number of bug fixes, new functionality and improved performance. (see details at https://github.com/npgsql/npgsql/releases/tag/v2.1.0) The binaries supplied are for .NET 4.0 If you need binaries for older versions they can be dowloaded from https://github.com/npgsql/npgsql/releases/tag/v2.1.3. There are also binaries for 4.5.
The performance improvement is particularly evident on terrain load and other repeated queries to the database. This version will automatically generate prepare statements if it sees 5 consecutive identical statements and cache them for later use. The prepare statement will skip the analyze portion of the query planner once a statement has been created.  In addition there are improvements in the connection pool logic that will improve performance once connections get scarce.

Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-14 18:59:24 +01:00
Geir Nøklebye c1d06a806d Updated Npgsql.dll to version 2.0.14.3 built for .NET 4.0 Mono.Security has been updated for the same build.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-14 18:58:16 +01:00
UbitUmarov eea247fcc5 Merge branch 'master' into httptests 2017-05-14 07:52:50 +01:00
UbitUmarov 156707edfb clear land object on delete 2017-05-14 06:27:29 +01:00
UbitUmarov 92df6095d5 don't round to nearest int 2017-05-14 05:49:01 +01:00
UbitUmarov f968118e23 don't do dwell if there is no module active 2017-05-14 05:39:22 +01:00
UbitUmarov 9ab8ce1404 fix remote requests for dwell, so dwell module still called 2017-05-14 04:17:48 +01:00
UbitUmarov cb21caae77 fix some issue on parcels loading and make parcels dwell show something. Resolution is 2.5min aprox. 2017-05-14 01:44:04 +01:00
UbitUmarov 25ca8695f3 find parcels by GlobalID.. well most time 2017-05-13 20:21:56 +01:00
UbitUmarov dd0269df48 fix passcollisions bool value on store 2017-05-13 17:22:56 +01:00
Geir Nøklebye 7cf82a71d6 PGSQL: Convert PassCollision in table prims to bool to avoid a hopeless cast that fails with newer versions of NPGSQL.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-13 17:15:47 +01:00
UbitUmarov 16f02cb6fd we can't allow abort to change only one dic 2017-05-13 16:34:29 +01:00
UbitUmarov 9ea49d107d fix wrong locking on unused path it case it does get uses. Thanks LaNani Sundara 2017-05-13 15:58:35 +01:00
UbitUmarov 086eb28a91 a bit more on ServicePointManager 2017-05-12 22:03:53 +01:00
UbitUmarov 948138a3a4 lower connection limits again 2017-05-12 16:45:58 +01:00
UbitUmarov 566c96dc85 revert changes to *exe.config since a host mask of * produces identical effects as runtime setting 2017-05-12 15:54:54 +01:00
UbitUmarov d08df7bda7 mantis 8165: fix a null ref on hg gatekeeper on another place 2017-05-12 15:22:16 +01:00
UbitUmarov 5e577baa10 fix a null ref on hg gatekeeper 2017-05-12 14:42:21 +01:00
UbitUmarov 0f2ab6bddd soem changes on connections limits 2017-05-12 14:20:06 +01:00
UbitUmarov 8bdd4c3ed9 yes it is not destiny grid but destination.. thx u know who :) 2017-05-12 12:30:59 +01:00
UbitUmarov 9c46e4921a remove forgotten refs to Mono.Posix.dll 2017-05-12 04:08:55 +01:00
UbitUmarov a932f24ba4 minor fix on sensorrepeat 2017-05-12 03:53:18 +01:00
UbitUmarov dcdc527401 Merge branch 'master' into httptests 2017-05-12 01:55:15 +01:00
UbitUmarov 19d141c9a5 avoid a null ref 2017-05-11 23:46:06 +01:00
UbitUmarov 1b7aee89d3 Merge branch 'master' into httptests 2017-05-11 23:14:02 +01:00
UbitUmarov 97d02ecf32 remove a coment added by mistake 2017-05-11 21:44:57 +01:00
UbitUmarov b8138c37d3 hide a nonsense option 2017-05-11 21:41:33 +01:00
UbitUmarov cc95b7e2d4 don't allow multiple presences of same avatar also on HG gatekeeper 2017-05-11 20:26:06 +01:00
UbitUmarov f09fafff34 some cleanup 2017-05-11 20:24:47 +01:00
UbitUmarov fb427daa34 avoid a null ref 2017-05-11 19:06:49 +01:00
UbitUmarov 211a1fe9d4 do not allow multiple logins of same avatar. No HG case, that needs work on some paths. option m_allowDuplicatePresences is checked, but is is a total nonsense.. Presences control will get broken if allowed, No one ever added code to suport it correctly. 2017-05-11 17:59:37 +01:00
UbitUmarov 5968c6372a let new regions know about grid services god 2017-05-11 17:30:57 +01:00
UbitUmarov 7e8c996d1b add a grid services god account 2017-05-11 17:15:02 +01:00
UbitUmarov 09c4952c6d merge 2017-05-09 23:22:36 +01:00
UbitUmarov 731510c305 let .net decide GC mode from its defaults on the platform 2017-05-09 18:27:06 +01:00
UbitUmarov 52d4cf692c update mysql connector to v6.9.9 .net4.0 2017-05-09 12:22:42 +01:00
Geir Nøklebye 03a38a80ab PGSQL: Rewrote EstateStore.migrations as it errored out in version 8 leaving the database without any estate tables on first run. It also lacked primary keys on estate_map and estate_settings. Syntax requires Postgresql 9.5 or higher.
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-09 12:00:45 +01:00
UbitUmarov 957ca41b13 remove file bin/Mono.Posix.dll that causes problems with mono 2017-05-09 11:58:07 +01:00
Geir Nøklebye d952d62baa PGSQL: Add missing AgentPrefs.migrations
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-05-08 20:25:03 +01:00
UbitUmarov 4b3d57e964 update mysql connector to v6.9.9 .net4.5 2017-05-08 19:08:20 +01:00
UbitUmarov 72811de98b push .Net framework to 4.5, this means minimal OS is now windows Vista (not XP), but we do need this, namely for easier SSL implementation 2017-05-08 19:06:37 +01:00
UbitUmarov 5622b174c4 update mysql connector to v6.9.9 .net4.0 2017-05-08 04:18:17 +01:00
UbitUmarov f358b39ef5 update httpserver 2017-05-08 04:00:47 +01:00
UbitUmarov 6c79cc652b some conditional dispose on http requests inputstream 2017-05-08 00:54:17 +01:00
UbitUmarov 604b966d84 some conditional dispose on http requests inputstream 2017-05-08 00:40:15 +01:00
UbitUmarov 8ef43e5fb3 take more heavy work out of opened dbconn sections 2017-05-07 22:22:28 +01:00
UbitUmarov b20778d8ec fix merge 2017-05-07 04:45:28 +01:00
UbitUmarov 11f6d28a06 fix merge 2017-05-07 04:21:33 +01:00
UbitUmarov d0912b6151 let StreamReader be in using statements 2017-05-07 00:47:45 +01:00
UbitUmarov de55ad9545 oops closed too soon 2017-05-06 22:12:45 +01:00
UbitUmarov c57215687f a few more changes on mysql 2017-05-06 21:43:22 +01:00
UbitUmarov 4b2ef46de6 don't hold dbconn longer than necessart 2017-05-06 20:40:29 +01:00
UbitUmarov 76337b1d8e another misplaced close 2017-05-06 20:38:38 +01:00
UbitUmarov 504736eb43 build const strings a compile time... 2017-05-06 20:23:55 +01:00
UbitUmarov 54eb6fc779 GZipStream does have a CopyTo() 2017-05-06 18:25:07 +01:00
UbitUmarov eb93855d84 dispose some MemoryStreams 2017-05-06 17:47:43 +01:00
UbitUmarov ae191cd304 dispose some MemoryStreams 2017-05-06 15:57:47 +01:00
UbitUmarov 025bef4e07 fix a few wrong placement ( this is a test by the way ) 2017-05-06 01:47:26 +01:00
UbitUmarov d26a9ed0b1 fix wrong placement 2017-05-06 01:41:33 +01:00
UbitUmarov d9038e650a MySQLConnector is not a MS product 2017-05-06 01:25:54 +01:00
UbitUmarov 8e30016841 revert to older CSJ2K.dll since new seems have issues on linux with existent textures/sculpts 2017-05-05 22:24:05 +01:00
UbitUmarov 3bc64f638a add a few guard checks on serviceThrottlemodule 2017-05-05 17:44:33 +01:00
Diva Canto 3f641d98bd Added a fully functional groups data layer for testing. 2017-05-04 20:17:54 -07:00
Diva Canto 424a7a274b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2017-05-04 18:20:48 -07:00
Diva Canto dd88319495 Add a groups module to the perms test suite 2017-05-04 18:20:10 -07:00
Diva Canto ab4f870000 Change the engine of the groups table back to MyISAM, because MySQL 5.5 and older don't support full test search on InnoDB 2017-05-04 18:19:46 -07:00
UbitUmarov f31fe66ce1 fix bad move on xmlgroups 2017-05-05 01:53:02 +01:00
UbitUmarov 9e12ef9234 let all clients get a group title update on create group 2017-05-05 01:39:38 +01:00
UbitUmarov 5f5b7e56db merge fix 2017-05-04 12:57:11 +01:00
UbitUmarov 04a50b47bf the new options i add where actually bad idea, they would make the
compatibility issue ethernal. Removed and extended the ugly date hack to
 group share outwards propagation, until a better way is found at least
2017-05-04 12:36:08 +01:00
UbitUmarov 3402819888 do the same in the cases we are just moving parts around and not changing their caches (ie their taskInventory) 2017-05-04 12:08:10 +01:00
UbitUmarov 3a8dd24fd1 move deep effective permissions aggregation to first time use and not on changes. There flag it is need with InvalidateDeepEffectivePerms(). Add config options PropagateGroupShareOutwards and PropagateAnyOneOutwards 2017-05-04 11:37:13 +01:00
UbitUmarov d62aed7f46 fix right to change permissions of group owned objects 2017-05-03 21:12:16 +01:00
UbitUmarov 3ef583f205 fix right to change permissions of group owned taskitems 2017-05-03 19:39:42 +01:00
UbitUmarov fc46274732 still another missing conversion btw viewer and OS on groupd owned 2017-05-03 19:10:02 +01:00
UbitUmarov 4c42716022 taskitem group owned information was still incorrect 2017-05-03 18:11:50 +01:00
UbitUmarov 94bb6d965e change taskInventory copy/move to agents inventory rules 2017-05-03 16:03:26 +01:00
UbitUmarov 8a330bc45d Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-05-03 15:32:34 +01:00
UbitUmarov b0244107dc viewer can't tell if a taskitem is group owned if we don't tell him; missing taskInv serial update 2017-05-03 15:31:42 +01:00
UbitUmarov 1b501f03f9 recover a lost trim in permissions modules names parsing 2017-05-03 15:30:43 +01:00
UbitUmarov cffe2f87e6 viewer can't tell if a taskitem is group owned if we don't tell him;
missing taskInv serial update"
2017-05-03 15:19:11 +01:00
UbitUmarov 832ca518d7 fix merge 2017-05-03 03:52:55 +01:00
UbitUmarov 02b43f06d1 recover a lost trim in permissions modules names parsing 2017-05-02 20:45:01 +01:00
UbitUmarov 1bfe9354e3 coment out optional fields that should be edited and uncomented if needed 2017-05-02 15:45:54 +01:00
UbitUmarov 710677cdc6 mantis 8135 2017-05-02 15:16:56 +01:00
UbitUmarov 55f7986b44 fix some comments 2017-05-02 13:14:26 +01:00
UbitUmarov a18ee3b6b3 fix LSL_ApiHttpTests 2017-05-02 12:35:06 +01:00
UbitUmarov 6c2f8176ae change opensim.ini.example setting of ExternalHostNameForLSL to a defualt 2017-05-02 11:39:29 +01:00
UbitUmarov a890ea312b disable LSL http listener (llRequestURL/llRequestSecureURL) if ExternalHostNameForLSL is not set in cofiguration or does not resolve 2017-05-02 11:23:41 +01:00
UbitUmarov ed22c5f3be Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-05-02 01:09:32 +01:00
Diva Canto 9c82ff7673 Shuffle some code around 2017-05-01 16:49:42 -07:00
Diva Canto 3c43cdbbcc Added some indirect transfer tests -- Take Copy by another avatar 2017-05-01 16:42:47 -07:00
UbitUmarov 8498cc2f02 save a few nanoseconds 2017-05-01 23:07:57 +01:00
Diva Canto 1ca2a7937e Permissions tests: added test with 2 direct transfers with permission changes in between (in inventory) 2017-05-01 14:58:03 -07:00
Diva Canto 8e88a9d702 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2017-05-01 10:09:54 -07:00
Diva Canto 9c6dd5d967 Perms test framework: make a lot of things more generic. 2017-05-01 10:09:31 -07:00
Diva Canto 45096b6238 Initial commit of the emerging test suite for permissions and more. 2017-05-01 07:06:50 -07:00
UbitUmarov 28d8eda768 buysell: make sure we dont buy child parts, dont mess with absolute position its useless with variable size regions, and its a rezing job 2017-05-01 14:42:38 +01:00
UbitUmarov 60dc124872 rename sog.GetEffectivePermissions() since its use is now limited to more specific task, and no longer on current effective(full) path. Note that change ownermask start to be current ownermask, and filter it to all parts basemask 2017-05-01 14:18:59 +01:00
Diva Canto 442a736a4c Add Permission tests project 2017-04-30 21:11:30 -07:00
UbitUmarov 2dbf96593c Permissions compatibility hack 1: anyone copy - new permissions require that all items in all object parts contents have anyone copy set. Old code only required it on object. This hack tries to allow objects older than today to still work as before on this. (this is a test, we may need to change it) 2017-04-30 19:44:49 +01:00
UbitUmarov a96c0f760a having the file open then let PermissionsToString know about Export 2017-04-30 14:42:39 +01:00
UbitUmarov 0d59a29dc7 save some nanoseconds if unfolding will not change anything ( export default mks it rare, but looks nice) 2017-04-30 14:39:20 +01:00
UbitUmarov b67904a651 remove a redundant operation 2017-04-30 14:31:46 +01:00
Melanie Thielker cf1064a245 Add a missing viewer-relevant message to the perms module 2017-04-30 13:24:48 +01:00
UbitUmarov 10922c2a1a exclude lms from permissions checks. They are full rights, and broken on all dbs 2017-04-30 12:51:12 +01:00
UbitUmarov 514249e80e fix new landmarks default permissions 2017-04-30 12:43:09 +01:00
UbitUmarov 116d32d947 don't break groups permission mask 2017-04-30 00:14:45 +01:00
UbitUmarov d8341588b3 nore permissions masks hierachy 2017-04-29 23:59:56 +01:00
UbitUmarov fedd1a93d2 buysell: fix permissions masks hierachy 2017-04-29 23:09:32 +01:00
UbitUmarov 522695c821 update folded permitions if taking from world, or after unfold 2017-04-29 22:09:45 +01:00
UbitUmarov 04117d9f75 recover PermissionsUtil.ApplyFoldedPermissions (well my version). its use easys code readability 2017-04-29 19:07:04 +01:00
UbitUmarov 725ccbb477 add check for valid folded perms 2017-04-29 16:58:43 +01:00
UbitUmarov 74f0ffbda6 fix chain of contents sells 2017-04-29 02:45:26 +01:00
UbitUmarov 019b34ea39 BuySell: bug fix, use all object permitions for sold item, and not the operation rights one 2017-04-28 23:05:14 +01:00
UbitUmarov 00091f1fb9 forgot a change... 2017-04-28 20:13:53 +01:00
UbitUmarov ba4e13ef55 a few changes to permissions folding... we are testing. at this point only use master for TESTING also 2017-04-28 20:03:44 +01:00
UbitUmarov 8d3d87e0b2 add a usefull taint and update 2017-04-27 00:02:01 +01:00
UbitUmarov ce655056ca ubMeshmerizer: fix the orientation of last triangle on top/bottom faces of
hollow cylinders plz delete contents of bin/MeshCache to remove defective
entries"
2017-04-26 18:21:58 +01:00
Diva Canto c8fcf9bceb Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2017-04-26 09:58:34 -07:00
Diva Canto 8dfab8757c Fill out Current Outfit folder with links when creating the initial avatar appearance. Some viewers (e.g. Singularity 1.8.7) get seriously confused when the avatar has no current outfit links. 2017-04-26 09:58:15 -07:00
UbitUmarov 1b8c71c965 give more information on Fatal Error during region startup 2017-04-26 16:15:33 +01:00
UbitUmarov ce3af94a69 mantis 6738: change parsing of the HTTP_CUSTOM_HEADER parameter and ignore entries in excess of 8 on the request 2017-04-26 07:19:44 +01:00
Diva Canto 2b8cdb2a75 If we're going to show regions twice (in standalone) at least make the formatting consistent... 2017-04-25 20:08:06 -07:00
Diva Canto 3b01c209b2 Update libOMV 2017-04-25 16:24:07 -07:00
UbitUmarov a680d8b8d7 fix merge 2017-04-25 17:59:53 +01:00
UbitUmarov 7c5376f224 move mesh pbs creation code out of mesh upload code into to PrimitiveBaseShape.cs 2017-04-25 14:21:01 +01:00
UbitUmarov 29ab39f14f cosmetics on mesh upload encoding of number of faces on pbs shape. Use opensim shape enums in place of libovm for coerence, add a few coments. 2017-04-25 13:05:20 +01:00
UbitUmarov 2f6c78b888 finish encoding number of mesh faces in pbs shape on new meshs upload, and *HACK* flag it setting hollow shape to triangle. (some limited encoding as added some months ago, but only for viewers LOD). Use this hack flag to fix sop number of faces. old meshs will still report 8 faces, information to fix this seems lost unless the mesh asset is decoded 2017-04-25 04:58:24 +01:00
UbitUmarov 7a54c3e9c3 some fixes on the materials paramenters of llGetPrimitiveParams() 2017-04-24 11:46:13 +01:00
UbitUmarov c91e101224 add suport for materials parameters PRIM_NORMAL, PRIM_SPECULAR and PRIM_ALPHA_MODE of llGetPrimitiveParams(). Im sleeping at this time, this can be very wrong 2017-04-24 07:06:48 +01:00
UbitUmarov 65a1547209 fix (or actually break) llList2float() since LSL_Key is same as LSL_String, the case of invalid LSL_Key cannot be handle, since most likely it is a string 2017-04-24 02:05:39 +01:00
UbitUmarov 3b33a90e37 update ode binaries for windows 2017-04-21 13:49:25 +01:00
UbitUmarov 54819fa4ae mantis 8154 dont let self lResetOtherScript mean harakiri 2017-04-21 11:03:31 +01:00
UbitUmarov cf444ecc54 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-04-20 21:24:30 +01:00
Geir Nøklebye ebcfad1a83 store the physics inertia override in the database
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2017-04-20 21:21:23 +01:00
Michael Cerquoni b498d554e1 update ode binaries for linux; add a minimal velocity for bounce 2017-04-19 21:50:32 -04:00
UbitUmarov 84c9125016 update ode binaries for windows; add a minimal velocity for bounce 2017-04-20 02:25:22 +01:00
Geir Nøklebye 28125202cc update for The new Constant: integer OBJECT_REZZER_KEY = 32 + adding missing support for fields in the prims table.
Signed-off-by: Michael Cerquoni <nebadon2025@gmail.com>
2017-04-19 14:04:54 -04:00
Geir Nøklebye fe83763c36 PGSQL: Fixed a failing query in GroupsData for deleting groups messages older than 14 days. The little known abstime function could be used for a double cast. The field TMStamp should be changed to store the data as a proper timestamp. Related to Mantis #7848. Usually this would easily be solved using the to_timestamp function, but there is no support for it in NPGSQL as there are no very close functionality in .NET
Signed-off-by: Michael Cerquoni <nebadon2025@gmail.com>
2017-04-19 13:40:49 -04:00
Michael Cerquoni 52e03ee5bd update ubODE for Linux x86 and x86_64 to include lasted ODE 0.13.2 2017-04-19 13:24:38 -04:00
UbitUmarov 006c08886a deleted a bit 2 much on last commit 2017-04-18 05:31:15 +01:00
UbitUmarov 49884b94a7 update ODE binaries for windows. Other platforms need to compile from opensim-libs repo, folder ODE-OpenSim-0.13.2, read file OPENSIM-README.txt. Remove code to reduce bounce on non physical placement, new unmanaged should handle that 2017-04-18 00:50:55 +01:00
UbitUmarov 9354e60df0 fix active objects count down, a path at least 2017-04-16 03:39:35 +01:00
UbitUmarov b52f7b9203 missing file and remove warnings 2017-04-15 10:56:46 +01:00
UbitUmarov 0f7ffc56ce several changes for osTeleportObject 2017-04-15 10:46:18 +01:00
UbitUmarov 156ef0bbe3 still issues with volume detectors and sleeping bodies 2017-04-15 02:48:58 +01:00
UbitUmarov 4f8f04d949 still issues with volume detectors and sleeping bodies 2017-04-15 01:21:47 +01:00
UbitUmarov 73be6cb269 increase the updates priority of linkset where avatar is sitting 2017-04-14 22:02:40 +01:00
UbitUmarov 63383bf3c5 add functions to send entity updates imediatly, except for avatars (or now) they should be use to bypass normal delayed updates, for debug 2017-04-14 21:55:37 +01:00
UbitUmarov 22e9647748 update ode binaries for windows 2017-04-14 03:45:03 +01:00
UbitUmarov 9d8220ac9f some reduction on large colision repulsive force on non physical placement of physical prims 2017-04-14 03:14:41 +01:00
UbitUmarov 040037d713 update ode.dll for windows. Other platforms need fo be compiled from opensim-libs repo, folder ODE-OpenSim.0.13.2. This adds OsTerrain, a replacevment for Heightfield that ubOde can use. Its already rotated as needed and has a diferent Sphere collider, rest is still almost identical. Keep previus ode version in case this goes wrong. 2017-04-12 06:50:34 +01:00
UbitUmarov 1848b1fdb1 mantis 8740: fix osTeleportObject set rotation 2017-04-06 12:56:00 +01:00
UbitUmarov a41924d1f8 add missing invalidation of osGetLinkNumber cache 2017-04-05 19:42:55 +01:00
UbitUmarov c0904a32cb OSSL CheckThreatLevel() with no arguments only tests if OSSL is enabled. Faster test for safe functions that are always allowed with OSSL enabled. other name could be CheckOSSLenabled, but this name preserves functions template. 2017-04-05 15:11:19 +01:00
UbitUmarov c58f2167bb fix osTeleportObject OSFunctionThreatLevel setting on osslEnable.ini 2017-04-05 13:55:51 +01:00
UbitUmarov 2805cb9dec give osTeleportObject proper OSFunctionThreatLevel setting on osslEnable.ini 2017-04-05 01:15:44 +01:00
UbitUmarov d085c337a9 add a little speedup on repeated requests for same name on osGetLinkNumber. 2017-04-04 20:11:11 +01:00
UbitUmarov e237e1b2fa add LSL_Integer osGetLinkNumber(LSL_String name). uses a cache for the string to linknumber map, cache invalidations may still be missing :( 2017-04-04 19:27:45 +01:00
UbitUmarov ca250e0b0b mantis 8740: rename osObjectTeleport as osTeleportObject, replaced the stop parameter by flags, add flags OSTPOBJ_STOPATTARRGET and OSTPOBJ_SETROT 2017-04-04 14:34:25 +01:00
UbitUmarov 056b765fbc mantis 8130: improve keyframes motion 2017-04-04 12:38:23 +01:00
UbitUmarov c6150c2066 mantis 8140: fix objectTeleport rotation if stop TRUE 2017-04-04 00:30:19 +01:00
UbitUmarov 4bb27917f4 oops 2017-04-03 18:09:48 +01:00
UbitUmarov 1264069b41 fix typo 2017-04-03 17:29:02 +01:00
UbitUmarov 2bb5e98574 add EXPERIMENTAL osObjectTeleport(LSL_Key objectUUID, LSL_Vector targetPos, LSL_Rotation rotation, LSL_Integer stop) 2017-04-03 17:19:28 +01:00
UbitUmarov eb11505d19 add bool CanObjectEnterWithScripts(SceneObjectGroup sog, ILandObject land) permissions check 2017-04-03 16:10:05 +01:00
UbitUmarov 44993550a8 store the physics inertia override in SQlite 2017-04-01 18:15:47 +01:00
UbitUmarov 443fc60cdf store the physics inertia override in Mysql and add it to serializer. run prebuild is required 2017-04-01 17:49:17 +01:00
UbitUmarov 24b7903cd0 add missing file. Changes of inertia data of objects running does not
produce correct physical results, namely linear and angular momentum
 are not conserved.
2017-03-31 21:03:57 +01:00
UbitUmarov 6a35a965ff add OSSL functions to override linksets total mass, center of mass and inertia. replacing the crude automatic estimation based on prims known to physics and density. Changed parameters are still not saved, and are lost on region crossings. only suported by UbODE. EXPERIMENTAL feature, only test it for now.. don't try to use in products. 2017-03-31 20:55:48 +01:00
Melanie Thielker b033a2559e Adapt to a variable name that has changed in core 2017-03-31 14:55:54 +01:00
Melanie Thielker 5587ee4500 Merge branch 'melanie' 2017-03-31 14:50:14 +01:00
Melanie Thielker 6463ab7d79 If a DNS resolution fails on an outbound request, simply allow it 2017-03-31 14:44:22 +01:00
Melanie Thielker 59f7cf79c9 Prevent error spew when script send IM to HG users before HG is up 2017-03-31 14:38:42 +01:00
Melanie Thielker 5c3cb5297c Add missing dependency for etcd moduile 2017-03-31 14:38:42 +01:00
Melanie Thielker a6ecedb72a Also ignore NPCs in short-circuiting region restarts 2017-03-31 14:38:42 +01:00
Melanie Thielker c0ce746e2d When determining if a sim can be shut down, ignore NPCs 2017-03-31 14:38:41 +01:00
Melanie Thielker 75915bd0f3 Add the ability to post to and act uponconfiguration in etcd
Etcd is a distributed, highly available name-value store that is
the basis of many clustered applications. However, it can also be
run on a standalone machine. Using etcd allows live monitoring
and possibly changing configuration while the sim is running.
2017-03-31 14:38:41 +01:00
Melanie Thielker 680231d7e7 Make the MySqlGeneric layer transaction aware 2017-03-31 14:38:41 +01:00
Melanie Thielker 3e880cee45 Allow short-circuiting region restart delays of there are no users left 2017-03-31 14:38:41 +01:00
Melanie Thielker 4e465002a2 Make the file based log file format sane for the casual user
Developer-oriented format is left commented so interested users and devs
can reactivate it.
2017-03-31 14:38:41 +01:00
Melanie Thielker 5109dc955f Set a startup marker to let external scripts know the scene is up. 2017-03-31 14:38:41 +01:00
Melanie Thielker adcb1d8798 Allow setting the stats log file location in OpenSim.ini rather than app.exe.config 2017-03-31 14:38:41 +01:00
Melanie Thielker 41d21190b1 Skip region restart messages and delays when there are no root agents 2017-03-31 14:38:41 +01:00
Melanie Thielker 995e750c56 Change a misleading message that could lead users to believe a grid is down 2017-03-31 14:38:41 +01:00
Melanie Thielker 91f142bbd2 Add the option to link a scene object with a monitoring object
For debugging purposes.
2017-03-31 14:38:41 +01:00
Melanie Thielker 27fdf3094d A god is a god is a god. Let gods access scripts and NCs
Support staff are not of much help if they can't see the script a user
has issues with.
2017-03-31 14:38:40 +01:00
Melanie Thielker caaf9f7fc1 Squelch an error that happens when the asset cache was mounted RO.
Nothing we can do about that, blame Docker.
2017-03-31 14:38:40 +01:00
UbitUmarov 9a01fddd1c add CanSellObject() permitions check functions 2017-03-30 17:39:21 +01:00
UbitUmarov efed73b2c3 mantis 8131: make the new Offline IM code optional and disabled by default, since it is not compatible with current central servers, like in osgrid. 2017-03-30 16:27:14 +01:00
Melanie Thielker 07c39624ef Merge branch 'melanie' 2017-02-02 15:34:20 +00:00
Melanie Thielker 6164573766 Fix an error that would cause a rebake loop on HG grids 2017-02-02 15:22:27 +00:00
Melanie Thielker 047e87458b Correct whimsical spelling on a log message 2017-02-01 18:10:27 +00:00
Melanie Thielker 202fcc7d6f Merge branch 'melanie' 2017-02-01 16:34:49 +00:00
Melanie Thielker 60cf3f759f Refactor part II 2017-02-01 16:34:07 +00:00
Melanie Thielker a5151bb337 Refactor asset handling as per Ubit's suggestion 2017-02-01 16:31:01 +00:00
Melanie Thielker 5ceb315e34 Secure sim stats with an (optional) password.
There is way too much in these stats to expose them to the world, at
least for some of us.
2017-02-01 15:30:17 +00:00
Melanie Thielker 5a18ea31cf Make negative asset caching actually work
Also fixes some merge artefacts in HGAssetBroker where cached assets
were requested but not actually used and completely squelch a materials
debug message because there is nothing the user can do to fix it anyway.
2017-01-30 13:59:05 +00:00
Melanie Thielker a17db1b3cd Comment two very spammy debug messages that the usr can't do anything about
Make a third one conditional.
2017-01-30 12:58:15 +00:00
UbitUmarov 056ccaed90 update parcel select or sat on stats on sit and stand 2017-01-27 21:43:25 +00:00
UbitUmarov d4111ff670 fix SimwideArea again 2017-01-27 20:59:56 +00:00
UbitUmarov 0091c37ed3 several changes relative to objects return and parcel prim counts: avoid null refs, report correct count of returned objects, make obkects counts by ownership coerent with return rules, etc 2017-01-27 20:21:24 +00:00
UbitUmarov f76ea3bb76 parcels must be loaded before objects, so they can be added to them 2017-01-27 20:07:02 +00:00
UbitUmarov 4b9c94a3aa bug fix: wrong enabled check 2017-01-27 13:10:57 +00:00
UbitUmarov 56e3aaefde Permissions modules where made NONShared modules. Make them so, removing incoerences and their potencial bugs 2017-01-27 12:32:01 +00:00
UbitUmarov cdc23bab74 remove unused and wrong methods 2017-01-26 19:51:50 +00:00
UbitUmarov ed365f6220 remove SOP.AttachPoint, redundant( and incoerent) with SOG.AttachmentPoint 2017-01-26 19:43:00 +00:00
Melanie Thielker 32c1127809 Make it possible to override the URL module 2017-01-26 18:35:53 +00:00
UbitUmarov 2fc7993d69 ubOde: update prim mass when changing Density 2017-01-26 02:45:12 +00:00
UbitUmarov dd190f1a1f CHANGED ALLOWED_DROP should only trigger if user has no MOD rights 2017-01-25 20:26:09 +00:00
UbitUmarov 02fbe5a740 add and use CanDropInObjectInv 2017-01-25 19:39:58 +00:00
UbitUmarov f722f1cf6c fix test setup 2017-01-25 18:10:59 +00:00
UbitUmarov 74ac2034e0 make use of CanDoObjectInvToObjectInv 2017-01-25 16:57:46 +00:00
UbitUmarov b45f6b933f fix a bug in CanCopyObjectInventory; add CanDoObjectInvToObjectInv ( not wired) 2017-01-24 14:01:39 +00:00
Melanie Thielker f0700f48d8 Comment some more debug and squelch another module not running msg.
Modules whould not require that their .ini key is present. If the user
chooses to not use that module, they should not be required to retain
the config key for it.
2017-01-23 14:26:14 +00:00
Melanie Thielker f50d598434 Disable spam in profiles module. Modules should not say they're disabled. 2017-01-23 14:06:38 +00:00
Melanie Thielker 1e0ed50d29 Activate the new Offline IM module code instead of the old code
As most have gone to OfflineMessaging V2, this change will not affect
existing users but will benefit future grids.
2017-01-23 01:19:28 +00:00
UbitUmarov c673ef7e3c replace calls to SOG.GetEffectivePermissions() by the new SOG.EffectiveOwnerPerms, some of those inline permissions checks should be reviewed and pass by permissions module 2017-01-22 23:05:39 +00:00
UbitUmarov df035a4022 don't let part lastowner be the group 2017-01-22 21:38:59 +00:00
UbitUmarov 8d99c86f96 share before groupr roles was a testing elsewhere induced mistake, clean it up 2017-01-22 05:07:43 +00:00
UbitUmarov 50e318c401 work around group sharing and owned permitions issues, fix a non copy objects delete issue 2017-01-22 03:23:50 +00:00
UbitUmarov c14ec1a9bd a few more changes on permissions 2017-01-21 14:22:32 +00:00
UbitUmarov 7a1d9e213e fix CanReturnObjects 2017-01-21 11:21:36 +00:00
UbitUmarov 186f0b73cd add/fix CanRunScript 2017-01-21 10:22:00 +00:00
UbitUmarov 0a5d6671ce fix llScriptDanger(); don't call old ScriptDamage on ossl health functions 2017-01-21 06:37:29 +00:00
UbitUmarov 9d61df0887 fix CanObjectEntry and CanTerraformLand group permissions 2017-01-21 05:14:13 +00:00
UbitUmarov b20bd1a9df change the initialization point of SimwideArea 2017-01-21 03:35:59 +00:00
UbitUmarov 85a31c9e76 initialize SimwideArea 2017-01-21 02:29:08 +00:00
UbitUmarov d62854cbd3 set a sane default region ObjectCapacity 2017-01-21 00:30:42 +00:00
UbitUmarov c0231fe169 Oops.. fix the null on the correct place.. jenkis may now fail for another reason 2017-01-21 00:18:25 +00:00
UbitUmarov 48f137599f fix a null ref on jenkins 2017-01-20 23:36:35 +00:00
UbitUmarov 05196ebe27 test jenkins 2017-01-20 22:50:50 +00:00
UbitUmarov dac32c4e5a change CanObjectEntry() to use a SOG 2017-01-20 14:26:24 +00:00
UbitUmarov df40cdc83e remove redundant IsGod, rename some GOD as Administrator (both only on permissions module) 2017-01-20 13:45:44 +00:00
UbitUmarov 69bcbd856b change CanDuplicateObject 2017-01-19 19:01:56 +00:00
UbitUmarov 97e6f21c6c actually make use of it as viewers requested 2017-01-19 18:33:00 +00:00
UbitUmarov 6826ca9b57 fix the meaning of objectDuplicate[OnRay]() flags parameter but still not using it 2017-01-19 18:25:25 +00:00
UbitUmarov d8108ab740 change CanDeedObject. WARNING like on other grids, if you do not set next owner rights on object and ALL ITS CONTENTS, you may loose all rights on it 2017-01-19 17:45:54 +00:00
UbitUmarov b9651652e1 add a comment about parts permissions aggregation 2017-01-19 13:25:00 +00:00
UbitUmarov 984345a202 add CanEdit check for SOGs, iclients and SPs that need to be in scene and use it 2017-01-19 13:10:04 +00:00
UbitUmarov 7651d60d72 fix a null check 2017-01-19 12:47:14 +00:00
UbitUmarov 673bd37219 object CanMove is for in scene SOGs Icleints and SPs and permitions module is NOT a shared module 2017-01-19 12:35:00 +00:00
UbitUmarov fe9a785ecc object Take and TakeCopy are for in scene SOPs and SPs and permitions module is NOT a shared module 2017-01-19 11:34:40 +00:00
UbitUmarov b9ecc962ac a few more aux methods and changes 2017-01-19 10:27:30 +00:00
UbitUmarov 3b96cd8ff2 add a GetItemPermissions() to be used use on object contents checks in Permissions module 2017-01-19 00:51:55 +00:00
UbitUmarov 1ff7e34996 a few more changes on Permissions module 2017-01-18 22:25:49 +00:00
UbitUmarov b23ce04a6e enforce effective perms hierarchy 2017-01-18 21:17:09 +00:00
UbitUmarov e2c2d92d5a antecipate baked cache check and Xbakes requests, so they happen before viewer check request (or force it to wait via locking). 2017-01-18 02:29:05 +00:00
UbitUmarov e963789714 Permissions module: fix in prim inv CanEditNotecard group edit rights check ( in last commit plz read .. by GetObjectPermissions) 2017-01-18 01:16:58 +00:00
UbitUmarov c14d81f538 Permissions module: replace some GenericObjectPermission by GenericObjectPermission on some checks. Note that in some cases behavour is now diferent. 2017-01-18 00:42:08 +00:00
UbitUmarov 6d784f6306 Permissions module: GenerateClientFlags() no need to keep looking for the same part several times; fix locked mask in GetObjectPermissions() 2017-01-17 23:22:02 +00:00
UbitUmarov 06bca0388f Permissions module: add GetObjectPermissions() that should replace GenericObjectPermission 2017-01-17 14:30:20 +00:00
UbitUmarov db2fbf6516 add more calls to effective permissions aggregation, some paths may still be missing on objects changes, but remove the aggregation on check paths, so all can be tested. 2017-01-17 13:24:09 +00:00
UbitUmarov 1113407280 add more calls to effective permissions aggregation; do not change groupmask on deed 2017-01-17 01:22:44 +00:00
UbitUmarov a5c693e302 start adding calls to effective permissions aggregation on changes; rearrange code in DuplicateObject(); 2017-01-17 00:41:30 +00:00
UbitUmarov 2b5ef89272 remove now unused SetRootPartOwner() 2017-01-16 20:37:04 +00:00
UbitUmarov 180add745c replace calls to SetOwnerId and SetRootPartOwner by a single new SetOwner() so owner is not changed twice on rootpart 2017-01-16 20:27:39 +00:00
UbitUmarov 6735d3496c fix EffectiveGroupOrEveryOnePerms C&T == 0 case 2017-01-16 19:49:07 +00:00
UbitUmarov ffa6c7aae2 avoid lastOwner beeing the group 2017-01-16 19:22:39 +00:00
UbitUmarov 733072b6a3 chance new effective permissions code to ease aggregation on demand( ie on changes). But still doing full aggregation on checks, so still heavy 2017-01-16 19:01:41 +00:00
Melanie Thielker d78f04b326 Merge branch 'melanie' 2017-01-16 14:55:54 +00:00
Melanie Thielker 568614af2c Remove the last instance of the legacy slam but being set
New objects now get only the real slam bit.
2017-01-16 14:53:42 +00:00
UbitUmarov b9e2606c2f add code for fixing effective permitions. This is a test, and currently too slow for prodution. just finding our way home 2017-01-15 16:15:40 +00:00
UbitUmarov e475e65828 use of PermissionMask Bit3 for slam was a recent mistake, so make it only bit4 and move folded export to its more natural place as bit3 2017-01-15 13:43:54 +00:00
UbitUmarov 6eaa8948a6 bad move.. revert 2017-01-14 23:23:56 +00:00
UbitUmarov 24d12dfba4 permissions GenerateClientFlags() also needs group GetEffectivePermissions() for the everyone case. Current naive uncached GetEffectivePermissions() must be improved since its now a lot more used. 2017-01-14 22:19:20 +00:00
UbitUmarov e28ac282eb oops fix FolderMask acording 2017-01-14 16:49:56 +00:00
UbitUmarov 1ff831c45b make the Slam bit actually be the two previus used ones, to try to minimize compatibilty issues 2017-01-14 16:33:51 +00:00
UbitUmarov fb86e41561 fix incoerent definition of Slam bit (bits 3 and 4 used in diferent
places.) this may still be wrong on other places; Do not loose folded
permitions,  WARNING MASTER IS NOW UNSTABLE. permissions are still broken"
2017-01-14 14:21:50 +00:00
UbitUmarov e263730ada fix: send viewers the Everyone permitions of items inside other objects 2017-01-14 11:25:44 +00:00
Melanie Thielker da51edb5fe Fix the new permissions error introduced with the inventory fix
The fix to allow setting perms in inventory accidentally caused folded
permissions to be used as a mask for the next owner perms. The current
solution isn't optimal but better than anything else we have had.
Legacy objects may experience a net loss of permissions if trying to
set their perms in inventory, this is deemed preferable to the prior
privilege escalation possibility. New items will handle properly.
2017-01-13 23:47:26 +00:00
Melanie Thielker b9eb3afb62 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-13 17:09:26 +00:00
Melanie Thielker c74fa02d87 Harmonize case in Permissions enum 2017-01-13 17:09:08 +00:00
UbitUmarov 1984f316fc Add permission CanChangeSelectedState replacing 2 calls to check Move and Modify/edit. As those calls did, this controls changes to objects selected state for edition (simulation hold etc). 2017-01-12 17:15:36 +00:00
UbitUmarov 3e0a61915f GenerateClientFlags: consider locked state, change object group; CanRezObject: remove odd elses and group roles are only for group owned land 2017-01-12 16:58:59 +00:00
Melanie Thielker dafb362b60 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-11 23:05:39 +00:00
Melanie Thielker 14d6d6f7a5 Also add the ability to quit on SIGTERM for ROBUST 2017-01-11 23:05:06 +00:00
UbitUmarov 0d538cb24c stop using a GetPermissionClass() in GenerateClientFlags since it is not good enough, just process the several cases inline 2017-01-11 22:47:31 +00:00
UbitUmarov 386a8136c9 don't let object lastowner be its group 2017-01-11 18:41:06 +00:00
UbitUmarov 1253f19325 more changes to GenerateClientFlags(), use already cached presence group information, let it be aware of groups roles. (not exactly as the other grid) 2017-01-11 17:10:29 +00:00
UbitUmarov e0ab0b3b6b change GenerateClientFlags(...) to work with a scenepresence; make use of the new IsGod to check its God rights; remove the non standard estate manager right to move other ppl prims i added on last commits; coment out a test method i added sometime ago 2017-01-11 01:02:57 +00:00
UbitUmarov e3f7c27c93 remove obsolete PrimFlags.ObjectYouOfficer; rearrange GenerateClientFlags(...) with changes: allow estatemanager to move other ppl objects to help solve placement disputes; exclude attachments on that and from same group members 2017-01-10 23:45:19 +00:00
UbitUmarov d96bcd8264 add a bit clarification about grid private port protection 2017-01-09 18:22:39 +00:00
UbitUmarov 90dee2fce6 try to improve option automatic_gods processing 2017-01-08 12:30:50 +00:00
UbitUmarov da69bc5da6 restore argument name material_bits 2017-01-08 11:28:34 +00:00
UbitUmarov fb42845bee mantis 8117: fix llSetPhysicsMaterial, using proper LSL_float type 2017-01-08 11:15:39 +00:00
UbitUmarov 45695ef2e3 Merge branch 'master' into httptests 2017-01-08 02:00:24 +00:00
UbitUmarov 8662606f7b add the new GOD ossl option to osslEnable.ini 2017-01-07 23:38:55 +00:00
Melanie Thielker 556d95ef05 Revert "Allow OSSL scripts to softfail"
This reverts commit e5244fe708.

Conflicts:
	OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
2017-01-07 23:36:07 +00:00
Melanie Thielker f457925f80 Fix a compile issue and reintroduce the "GOD" script option 2017-01-07 23:12:51 +00:00
Melanie Thielker c9736755d8 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-07 22:54:24 +00:00
Melanie Thielker e5244fe708 Allow OSSL scripts to softfail 2017-01-07 22:53:46 +00:00
UbitUmarov 2d0860ac51 rename OSSL enable option GOD as ACTIVE_GOD so its use is more clear 2017-01-07 22:51:56 +00:00
UbitUmarov e2167716aa change OSSL enable option GOD to use IsGod, so it means a active god, as my original idea 2017-01-07 21:44:01 +00:00
UbitUmarov 2798adcdcd use new IsGod on CheckAndAdjustLandingPoint_SL so it can be by current viewer god, acording to config 2017-01-07 21:27:57 +00:00
UbitUmarov 694720d7a9 Merge branch 'master' into httptests 2017-01-07 21:05:12 +00:00
Melanie Thielker e58903be6f Correct casing on isGod and isViewerUIGod 2017-01-07 20:38:30 +00:00
Melanie Thielker 6d44ee9099 Change improperly named isNPC to be IsNPC as a property should be uppercase 2017-01-07 20:30:51 +00:00
UbitUmarov c41616b771 ignore teleport flag GodLike. Perform checks acording to agent static
local or grid rights
2017-01-07 19:44:37 +00:00
UbitUmarov 1b858ad47b missing changed file 2017-01-07 18:57:12 +00:00
UbitUmarov eedc37794e rename same more variables to make their meaning more clear 2017-01-07 18:49:15 +00:00
UbitUmarov effa32cfa4 replace godlevel compares by the new faster bool isViewerUIGod 2017-01-07 18:41:46 +00:00
UbitUmarov 5bcb1c0e72 rename same variables to make their meaning more clear 2017-01-07 18:10:30 +00:00
UbitUmarov add27a503e Merge branch 'master' into httptests 2017-01-07 16:55:03 +00:00
UbitUmarov ed526916b7 update permissions module with the new options 2017-01-07 16:27:06 +00:00
UbitUmarov 7f9df24f97 prevent gods kick wars using the new god level variable 2017-01-07 16:13:46 +00:00
UbitUmarov d761a20cce more changes to god level control. Not that this is work in progress, for now it still works mainly as with option implicit_gods = true. speed up some regions child updates, some cleanup 2017-01-07 16:02:52 +00:00
UbitUmarov f46d70ada5 try to work around some broken viewers math on handles 2017-01-07 12:18:44 +00:00
UbitUmarov 7d3cd3dd59 coment out a flodding debug message 2017-01-07 09:02:50 +00:00
Kevin Cozens 4a18444e6e Allow avatar to be charged group membership fees when a money module is in use 2017-01-06 21:15:58 -05:00
Kevin Cozens 5bc869391a Only apply group creation fee > 0 and pass group name when applying fee 2017-01-06 21:15:58 -05:00
Melanie Thielker 86d057852d Fix custom dialogs working when bin/ is read-only 2017-01-07 01:16:56 +00:00
Melanie Thielker 8ec258bef4 Fix grid gods 2017-01-07 01:07:56 +00:00
Melanie Thielker 6a066480cc Squelch noisy debug message that happens on every single rez 2017-01-07 00:43:42 +00:00
Melanie Thielker 1e9cbf5c97 During login cancel, don't error out here on a null client. 2017-01-07 00:37:13 +00:00
Melanie Thielker ff945867a3 Squelch red ink for login cancel by the user during circuit setup 2017-01-07 00:35:09 +00:00
Melanie Thielker e81b3d8f0c Remove a red ink error on shutdown. Harmless message since shutting down anyway 2017-01-07 00:29:20 +00:00
Melanie Thielker d9dba51223 Queue all events for a script that is waiting to compile
This fixes CHANGED_OWNER the right way. It also vastly improves link
message handling during object rez, which was iffy before. Now no
messages are lost anymore.
2017-01-07 00:25:59 +00:00
Melanie Thielker fa5c47b916 Fix a slew of event like CHANGED_OWNER, attach() etc not working.
Optimization can ba taken too far. Compile scripts synchronously for
interactive rezzing because otherwise all events relating to rezzing/
wearing are lost.
2017-01-06 23:35:39 +00:00
Melanie Thielker 3f3aaef66a Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-06 18:14:03 +00:00
Melanie Thielker f2c50db968 Fix an artefact introduced by git's revert merging logic 2017-01-06 18:13:33 +00:00
UbitUmarov fba2466c16 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-06 17:33:41 +00:00
UbitUmarov 497c417885 add a missing god_date transmition 2017-01-06 17:33:12 +00:00
Melanie Thielker 8ab7e047bf Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-06 17:07:44 +00:00
Melanie Thielker e526e8c5e2 Fix the long-standing bug that object permissions set in inventory were lost
NOTE: Items rezzed by users using 0.8 or older will still exhibit broken
behaviour. Until 0.8 becomes end of life, this fix will not produce
dependable results on grids with mixed versions. Grids based on 0.9 will
now work properly.
2017-01-06 17:05:00 +00:00
UbitUmarov 0b912b2acc Remove parcel_owner_is_god option. It is conceptually wrong and with
limited use. Relevant parcel owners can just be made estate managers with better regions management logic
2017-01-06 15:00:55 +00:00
Melanie Thielker da76224eac Remove more calls to that horrible function 2017-01-06 13:18:22 +00:00
Melanie Thielker 4385d7d693 Fix errors introduced by incomplete understanding of what folded perms are 2017-01-06 13:17:43 +00:00
UbitUmarov c707955517 restore parcels avatars visibility god level change correct handling; try to reduced the increased change of user error on config options setting 2017-01-06 10:28:10 +00:00
UbitUmarov e5a3d85bc7 fix/simplify validation of god_data update field 2017-01-06 03:45:47 +00:00
UbitUmarov 7ac74fcf73 fix typo 2017-01-06 03:07:17 +00:00
Melanie Thielker 8eb7c9d0fb Fix the mixed gods issue in all places 2017-01-06 02:14:56 +00:00
Melanie Thielker 244f7e6280 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-06 01:53:50 +00:00
Melanie Thielker ad531ecb53 Handle the case where grid gods and local gods should coexit
Thou shalt have no other gods beside me, your one and true god.
2017-01-06 01:52:42 +00:00
UbitUmarov 1b64a45f66 take sync viewer out on make root 2017-01-06 01:38:13 +00:00
Melanie Thielker 9b93068054 Sync viewer on make root 2017-01-06 01:27:30 +00:00
Melanie Thielker a61a41ad92 Send GodLevel to viewers on login 2017-01-06 01:22:36 +00:00
UbitUmarov 6172446e2a Merge branch 'master' into httptests 2017-01-06 01:09:42 +00:00
Melanie Thielker 78ed9c81ff UserLevel must have a trusted source 2017-01-06 01:06:44 +00:00
Melanie Thielker ad8915f154 Restructure god level and permissions
Create a class GodController which controls all aspects of god level,
viewer modes and user levels at ScenePresence level.
2017-01-06 00:55:14 +00:00
Melanie Thielker 46bffad558 Add GodController class 2017-01-05 23:52:47 +00:00
UbitUmarov 05902d2958 inform viewers of current godlevel; put back a small delay on teleport arrivel to give time to viewers to sync 2017-01-05 22:27:53 +00:00
UbitUmarov 83c9776cbc allow initial automatic level to be changed by request. Since viewers still dont get real level, one will need to ask for god level then disable it to syncronize the viewer with real level. 2017-01-05 21:32:26 +00:00
UbitUmarov 1fb01a0099 add config option automatic_gods. With this option true, users that can be Gods will have that level automaticly without the need request on viewer; Propagate current god level to nearby regions (with local checks) 2017-01-05 21:21:15 +00:00
UbitUmarov 1a35af229c remove code i started but didn't finish 2017-01-05 19:59:48 +00:00
UbitUmarov 254b26a7d5 fix merge 2017-01-05 19:32:57 +00:00
Melanie Thielker b16abc8166 Massive tab and trailing space cleanup 2017-01-05 19:07:37 +00:00
Melanie Thielker e88e2945e9 Make it possible to disable the bakes module in the way it is described in config comments 2017-01-05 18:53:02 +00:00
UbitUmarov a0c9f84994 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-05 18:08:12 +00:00
Melanie Thielker de16ce35a3 Make the estate communications handler selectable
Still defaults to the core EstateModule if not configured differently
2017-01-05 18:05:06 +00:00
UbitUmarov cbc3501246 a few changes to Gods ( ie administrators) control 2017-01-05 18:02:59 +00:00
Melanie Thielker e0a6691932 Rename the files and classes from XEstate to Estate
The names conflict with it's ancestor module and the code is nothing
like the out of core XEstateModule, so it should not be named the same.
2017-01-05 17:59:21 +00:00
UbitUmarov 40e982f6e7 a few changes to estates port handling 2017-01-05 17:11:03 +00:00
UbitUmarov 9d28fd41c6 Merge branch 'master' into httptests 2017-01-05 16:33:01 +00:00
UbitUmarov d43a3bec19 a few changes to estates and estate teleportHome (used kick) 2017-01-05 16:27:17 +00:00
Melanie Thielker f4a51116f6 Fix some permissions checks in groups
The code checked the permissions of a person being added to a role
rather than those of the person doing the adding. Also, limited
permission role removal wasn't implemented.
2017-01-05 14:17:00 +00:00
Melanie Thielker 53fe204eed Create all tables ad InnoDB by default
MyISAM isn't properly replicated using row based replication. With the
advances in clustering, these systems are becoming more prevalent and
MyISAM isn't up to the task anymore.
2017-01-05 13:35:13 +00:00
UbitUmarov 5da7752ebc Merge branch 'master' into httptests 2017-01-04 23:16:47 +00:00
Mandarinka Tasty af1b00db41 The robust command login reset should return config value: MinLoginLevel. Defaultly, it returns 0.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2017-01-04 21:52:49 +00:00
Geir Nøklebye af93822465 PGSQL fixed a missing cast to uuid in XInventoryData
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2017-01-04 21:18:58 +00:00
Mandarinka Tasty ed641b22b3 Show details of scene objects with given ownerId.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2017-01-04 19:20:06 +00:00
Melanie Thielker b0db575220 Set a sensible default for the MaxAgentGroups parameter
MaxAgentGroups is in the [Groups] section, but is read by the login
service. If the login service and the groups service don't share the
same ini file, that will be sent to the viewer as zero and groups will
not work.
2017-01-04 19:13:59 +00:00
Melanie Thielker 995242b351 Suppress misleading message when logging in locally
The gatekeeper and travel info address will not actually be set there,
stop OpenSim from showing a blank address. It's confusing.
2017-01-03 18:31:17 +00:00
Melanie Thielker 504a69906b Suppress error messages in the log if functions are not enabled. Just return failure instead. 2017-01-03 14:05:37 +00:00
UbitUmarov 82a26671b8 Merge branch 'master' into httptests 2017-01-03 11:24:16 +00:00
Melanie Thielker 65dfb62b74 Merge branch 'master' of opensimulator.org:/var/git/opensim 2017-01-02 19:31:23 +00:00
Melanie Thielker 966e50d90c Add the HGRemoteAssetService. Allows to use any asset service with HG 2017-01-02 19:30:40 +00:00
Melanie Thielker f03a6bbc61 Create a generic way for passing constructor args to plugins
The old syntax didn't allow for any parameters except for services
listed in the ServiceList. Now, services loaded by other services can
also be made to use different ini sections or have additional paramters.
Syntax is: [<ExtraParam>@]...<DllName>[:<ClassName>]
2017-01-02 17:47:20 +00:00
Diva Canto 7abb0477ed Replaced OpenMetaverse libs/xmls with new ones. Also added a file in openmetaverse_data that was added recently to libomv and was missing. 2016-12-31 08:58:06 -08:00
UbitUmarov da08e2e5f5 mantis 8106: improve avatar walk in mouselook 2016-12-30 19:13:18 +00:00
Melanie Thielker f510898188 Fake accepting materials (Type == -2) on FSAssets.
Materials are created with an MD5 hash based UUID in order to
stop proliferation of orphaned assets. Therefore a UUID collision
is expected on materials and should not have been treated as an
error.
2016-12-30 14:33:15 +00:00
UbitUmarov 5fc3605955 some cleanup, use more using(), more checks so http request mem stream is closed 2016-12-30 07:15:28 +00:00
UbitUmarov 1507c5230b remove a gc.collect that isn't very usefull (on the right engine this
time)
2016-12-30 05:15:50 +00:00
UbitUmarov ee485187db remove a gc.collect that isn't very usefull 2016-12-30 04:57:34 +00:00
UbitUmarov 1107d0ccb9 Merge branch 'master' into httptests 2016-12-30 02:20:52 +00:00
UbitUmarov 2836f16ae1 fix typos 2016-12-30 02:14:16 +00:00
UbitUmarov 2a01173715 Merge branch 'master' into httptests 2016-12-30 01:52:02 +00:00
Mandarinka Tasty aee3f273f0 Serving robots.txt from bin Idea of solution for http://opensimulator.org/mantis/view.php?id=7392
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2016-12-29 22:32:08 +00:00
Melanie Thielker e0b5135010 Add a MaxRetries option to the inventory connector.
If clustered services are used, another try would go to another server
and may succeed.
2016-12-29 16:29:44 +00:00
Melanie Thielker 07b48fd58c Add negative caching to flotsam cache. Prevents scripts from hammering the asset server 2016-12-29 15:47:46 +00:00
Melanie Thielker ec4c258794 Actually rename the file, too 2016-12-29 12:36:13 +00:00
Melanie Thielker f021c64eb0 Refactor: Rename IImprovedAssetCache to IAssetCache as the old IAssetCache is long gone. 2016-12-29 12:34:09 +00:00
Melanie Thielker feca9fd153 Add an option to update the file access time even when an asset is found in cache.
When the cache is shared between multiple sims, it is often more
efficient to have a single expire job run from cron. Updating
file access times is vital to the functioning of such setups.
2016-12-29 11:53:38 +00:00
UbitUmarov c78da183b2 expire also from weak references 2016-12-29 03:25:12 +00:00
UbitUmarov 3a310d77c8 forgot one gc.collect wait for finalizers 2016-12-29 03:12:50 +00:00
UbitUmarov 1ffcc59818 gc is also a unwanted cache, so use it. With this, memcache with short expires is no longer needed 2016-12-29 03:10:10 +00:00
UbitUmarov 7cf2e81223 reinforce gc.collect on region load to also do pending finalizers 2016-12-29 00:47:02 +00:00
UbitUmarov 88c96d3973 Merge branch 'master' into httptests 2016-12-28 12:20:02 +00:00
UbitUmarov 73b2c82427 adjust camera collision detection checks for new FS 2016-12-28 12:19:05 +00:00
UbitUmarov 5c79e03f18 some cleanup 2016-12-27 12:26:08 +00:00
UbitUmarov 65b4e17a80 robust textures add missing returns or redir case 2016-12-26 19:38:13 +00:00
UbitUmarov bf1f4d1384 fix typos (thanks you know who) 2016-12-25 16:51:54 +00:00
UbitUmarov 52e7fc31f7 fix typos (thanks you know who) 2016-12-25 16:48:27 +00:00
UbitUmarov 1b95ada105 Merge branch 'master' into httptests 2016-12-25 05:51:08 +00:00
UbitUmarov 293b65ac82 FloatSamCache: dont use slideexpire on current libovm expirecache. Change example settings to use memory cache with short expire time. ( 20% to 40% mem cache hit rates observed 2016-12-25 05:46:16 +00:00
Melanie Thielker 8d0b592e5d Add en explanation to osslEnable.ini for GRID_GOD 2016-12-23 20:41:10 +00:00
Melanie Thielker ba1ca67afe Re-add GRID_GOD because in some cases an "employee-only" level is simply needed 2016-12-23 19:48:03 +00:00
UbitUmarov 679d52ced6 add missing file 2016-12-23 19:41:57 +00:00
UbitUmarov bfb1cb9f33 a few more changes on user profiles 2016-12-23 16:10:07 +00:00
UbitUmarov 70475c676b dont try to use a parcelID as encoded position when it is not 2016-12-23 14:25:22 +00:00
UbitUmarov b6266c6a1d check if a parcelID is a encoded position data or a true UUID. This may fail, just reducing the odds. 2016-12-23 14:23:07 +00:00
UbitUmarov 0887be3c12 replace the (hidden) GRID_GOD by a more usefull GOD so includes all types. This needs to be changed to current effective godlevel check (sp.GodLevel) when that is fixed. Automatic god powers need be (optionaly) removed 2016-12-23 03:42:50 +00:00
UbitUmarov 86cc02f33e Merge branch 'master' into httptests 2016-12-23 02:53:58 +00:00
UbitUmarov 2e7e4427d0 UserProfileModule threading issues 2016-12-23 02:17:42 +00:00
Melanie Thielker 0ae2b5ac81 Allow the use of modular configs with Robust as we already can with OpenSim 2016-12-22 18:23:04 +00:00
Melanie Thielker c3e8406f41 Merge branch 'master' of opensimulator.org:/var/git/opensim 2016-12-22 15:39:49 +00:00
Melanie Thielker 5b403c448e Update the ini examples to add options missing from one to the other.
Group hypergrid related options within each section to ease
transition from non-HG to HG
2016-12-22 15:37:48 +00:00
UbitUmarov 84c3a96399 UserProfileModule refuse changes to classifieds outside home grid ( viewers may show a delete until profile is open again). Charge money only on classified creation sucess 2016-12-22 07:52:50 +00:00
UbitUmarov 5571c499ba UserProfileModule we can't use parcels globalID because we do not have a global locator. we need to send replies to viewer on pick update and delete 2016-12-22 07:06:40 +00:00
UbitUmarov 330369f904 take UserProfileModule out on onMakeRoot event, add some caching 2016-12-21 22:27:48 +00:00
Melanie Thielker 1602148f5e Merge branch 'master' of opensimulator.org:/var/git/opensim 2016-12-21 20:57:04 +00:00
Melanie Thielker 2bfbd6ef2e Change GRID_GOD script permission to do what it says on the tin.
Suggested by Mandarinka
2016-12-21 20:56:28 +00:00
UbitUmarov 7367f03d6e remove a odd raycastv3 config option 2016-12-21 20:39:38 +00:00
Melanie Thielker 7286b27ff9 Add GRID_GOD to the list of values allowed for enabling OSSL functions 2016-12-21 14:35:34 +00:00
Melanie Thielker 90be8d78c3 Remove obsolete config option "EventQueue". It's been always on for ages! 2016-12-20 17:10:33 +00:00
Melanie Thielker 66c18438f2 remove obsolete config option "storage_prim_inventories" 2016-12-20 17:08:15 +00:00
Melanie Thielker e40820cab1 Remove obsolete "gridmode" config default in code. 2016-12-20 17:01:48 +00:00
UbitUmarov 4bdf89d59b update httpserver muting some socket errors that are normal 2016-12-19 09:07:17 +00:00
UbitUmarov bbbbf47507 add a missing file change 2016-12-18 20:09:02 +00:00
UbitUmarov eabd8cbe48 a few updates to contributors list (sorry the ones still missing) 2016-12-18 07:11:20 +00:00
UbitUmarov 82fc8e1a36 Merge branch 'master' into httptests 2016-12-18 05:03:27 +00:00
UbitUmarov 30cd36ff98 leave stupid broken permissions alone 2016-12-18 03:56:53 +00:00
UbitUmarov 2cf422582a leave stupid broken permissions alone 2016-12-18 03:55:44 +00:00
UbitUmarov df7435a703 just give up on Export flag, seems just broken no matter water with current FS and singu 1.8.7 2016-12-18 03:20:41 +00:00
UbitUmarov c93551d8f4 allow a creator that is also onwer to change export flag. Add missing setting to ini files 2016-12-17 22:38:31 +00:00
UbitUmarov 389a1652fb break userprofiles a bit more 2016-12-17 20:11:34 +00:00
UbitUmarov b4bbf4f95d review llCastRay V3 phantom detection. Make it ignore physics shape type none as physics engines do. 2016-12-16 23:28:14 +00:00
UbitUmarov aa9a56d4df dont allow regions to be register on map area reserved for HG links 2016-12-16 21:15:21 +00:00
UbitUmarov 9b9f93c4b2 and yes HG uri again 2016-12-16 20:31:07 +00:00
UbitUmarov be490a8312 remove a nonsense option 2016-12-16 19:11:05 +00:00
UbitUmarov 1ddc90f16e useless change that doesn't fix anything 2016-12-16 18:55:13 +00:00
UbitUmarov 61d2fb6a17 viewers regionhandle are not necessary region identifiers, compensate for that on GetLandData in case one get there 2016-12-16 18:22:07 +00:00
UbitUmarov e2d46c060c ok.. another try on the HG uri 2016-12-16 03:38:20 +00:00
UbitUmarov 853e98d340 reserve constant OBJECT_ATTACHED_SLOTS_AVAILABLE from mantis 8096. But do not implement it 2016-12-16 01:13:07 +00:00
UbitUmarov c0a23d36df GetRegionsByName and GetHypergridRegionByName: detect that provided url is for local grid, and make it a local by region name local search 2016-12-15 23:48:25 +00:00
UbitUmarov 48efbeb8d3 set pbs shape acording to mesh number of (material) faces 2016-12-15 15:14:12 +00:00
UbitUmarov 94a36396b1 respective .ini settings 2016-12-15 00:09:21 +00:00
UbitUmarov 1fd0178e8e give regions a option to block profile web urls, so users are not sent to unknown web sites set by other users 2016-12-15 00:08:36 +00:00
UbitUmarov 1d6a7d2225 correct the new npc entries in osslEnable.ini 2016-12-14 22:34:27 +00:00
UbitUmarov e2062951d7 update osslEnable.ini 2016-12-14 16:33:52 +00:00
UbitUmarov 3056926403 dont self osDie attachments 2016-12-14 16:31:39 +00:00
UbitUmarov 553b326fb2 restrict osDie to objects rezzed by the script object group and a few more changes 2016-12-14 16:08:25 +00:00
Jeff Kelley 95d6396300 Add osDie(key)
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-12-14 15:14:22 +00:00
UbitUmarov 7a31a85408 show online on profile, if target is in same region.( possible should be done elsewhere) 2016-12-14 14:48:50 +00:00
UbitUmarov 18a292ad02 Merge branch 'master' into httptests 2016-12-14 13:35:53 +00:00
UbitUmarov 50842347ac fix: check for region_handle before region_id, viewers are so funny.. 2016-12-14 04:00:48 +00:00
UbitUmarov 364d58635b avoid a null ref 2016-12-14 03:02:57 +00:00
UbitUmarov 1ffc81c869 also reduce check threat level of osNpcSetProfileAbout to Low; update osslEnable.ini 2016-12-14 01:31:16 +00:00
UbitUmarov 1c08b3d8f9 also fox chekc threat level on osNpcSetProfileAbout 2016-12-14 01:16:21 +00:00
Melanie Thielker a75c16e1bf Fox threat level line on SetProfileImage. It is ALWAYS the name of the function!
Low is justified because setting an image requires having a NPC in the
first place....
2016-12-14 01:00:48 +00:00
Mandarinka Tasty ec883d0f15 New OSSL function: osNpcSetProfileImage(LSL_Key npc, string image); This patch gives possibility to set image in created NPC's profile. You can use UUID of the texture or name of texture included in prim's inventory.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-12-14 00:24:52 +00:00
Melanie Thielker 69776aa70c Remove the AllowAlternatePorts option. It wasn't implemented anyway.
Instead, handle the port being 0 as "any port" and assign a random
port for regions in that case.
2016-12-13 19:47:26 +00:00
Melanie Thielker ee58beddec Make sure sims on Linux can be restarted without waiting on a 2 mintue socket timeout 2016-12-13 14:43:10 +00:00
UbitUmarov 7d8cb244d1 ubOde other convex type objects other than mesh and sculpt also don't have holes 2016-12-12 19:16:51 +00:00
UbitUmarov fe3303dc11 ubOde simple spheres and boxes with type convex have no holes on physics(long forgotten fix) 2016-12-12 17:53:40 +00:00
Melanie Thielker 1388ac2ef7 Rename charterMember to membershipType to show what it actually is.
This field started out as a simple flag in the protocol to indicate a
user being a SL charter member. It has since then taken on additional
functionality that means that the name is no longer appropriate.
2016-12-12 11:09:38 +00:00
Melanie Thielker bebfbd0600 Only ask for the new parameter when starting from scratch.
It is set to false implicitly on existing regions.
2016-12-12 10:14:16 +00:00
Melanie Thielker 9ef9dde0f3 Make resolving the IP on startup optional.
Adds ResolveAddress boolean to regions.ini
2016-12-12 10:08:31 +00:00
Melanie Thielker cdfdf6322d Applying a modified version of TomTheDragon's patch to prevent the sim
from crashing when signals are unavailable.
2016-12-12 09:26:12 +00:00
UbitUmarov da2c1e8aad don't do unix signals on windows 2016-12-12 00:54:41 +00:00
Melanie Thielker 4d1536f1ec Allow OpenSim to respond to Unix signals. This may need work to be
properly ignoed on Windows.
Windows devs, please test and check for platform flags if this causes
issues in Windows
2016-12-12 00:07:36 +00:00
Melanie Thielker ba61b64c42 If a region address is resolveable to a single address, resolve it on
startup and use that address
This change facilitates running opensim within containers and VMs where
the external address isn't that of the VM/container but that of the
host.
2016-12-11 20:51:40 +00:00
Mandarinka Tasty 5b7986e6be Setting precise date of creation in NPC's profile.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-12-10 22:45:11 +00:00
Melanie Thielker 96bdc5e185 Merge branch 'master' of opensimulator.org:/var/git/opensim 2016-12-10 18:37:41 +00:00
Melanie Thielker 5ad8bceb1d Fix OpenSim bombing when a MySQL connection string doesn't contain a password.
Passwordless connection is perfectly legal and makes sense within a
container.
2016-12-10 18:36:10 +00:00
AliciaRaven d49a5374c3 Make it more unlikely that a script teleport will be caught by default region landing point. 2016-12-10 18:03:05 +00:00
UbitUmarov f57403909f do not try xbakes on HG 2016-12-10 02:03:00 +00:00
UbitUmarov a3e2a42f0d HG regions URI need to include also the default ports for compatibility 2016-12-10 01:00:48 +00:00
UbitUmarov 66990394c9 avoid a null ref 2016-12-09 22:56:11 +00:00
Mandarinka Tasty 575825193b The new string-parameter: "region_object_bonus" for llGetEnv(string name);
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-12-09 20:57:33 +00:00
UbitUmarov 82fb737b8d HG: add missing information on GetRegion 2016-12-09 08:20:35 +00:00
UbitUmarov 8114ff9d06 Merge branch 'master' into httptests 2016-12-09 04:50:07 +00:00
UbitUmarov 30dccd57cd provide remote SSLcommonName to xmlRpcRequest methods, but in a away it can be detected/parsed. This is used by some external modules like DTLNSLMoneyServer. But this module does need to change on this ( and it cannot override default validation rules, it needs to do it on its httplistener with method provided in previus commits 2016-12-09 04:32:59 +00:00
UbitUmarov 6627da693e suport client certificate validation per listenner, with a supplied static callback 2016-12-09 04:07:06 +00:00
UbitUmarov 18ff3eb227 JsonRpc: don't try to connect to a empty uri 2016-12-08 23:56:14 +00:00
UbitUmarov 806e75eefb remove not needed sslport parameter 2016-12-08 23:39:55 +00:00
UbitUmarov 4639409dbe change caps Sethome fail error report 2016-12-07 21:30:36 +00:00
UbitUmarov 55c04a2410 Merge branch 'master' into httptests 2016-12-07 20:34:11 +00:00
UbitUmarov 95ff859484 change a few ssl config comments 2016-12-07 20:33:38 +00:00
UbitUmarov 3a81642d97 add SSL certs validation options for regions to allow simple encriptation without any peer autentification using simple homemade (or even shared) certs. 2016-12-07 13:30:07 +00:00
UbitUmarov 049dd374e9 add SSL certs validation options for robust to allow simple certificates, possible only for encriptation without any peer autentification. disable validation by default for the small grids case 2016-12-07 12:23:40 +00:00
UbitUmarov 9042aa8968 add missing sp Intransit control 2016-12-07 04:56:35 +00:00
UbitUmarov f1c6769ca5 set HasGridUserTried on usercache of NPCs 2016-12-07 02:14:26 +00:00
UbitUmarov de36092d23 if we have profile then npc is online 2016-12-06 17:16:47 +00:00
UbitUmarov d4e285b1a1 add osNpcSetProfileAbout(LSL_Key npc, string about) to set NPCs profile About text. requires OsNpcCreate rights 2016-12-06 17:05:02 +00:00
UbitUmarov 240ab951b5 let NPCs have profile 2016-12-06 16:15:57 +00:00
UbitUmarov 4993a08d25 Merge branch 'master' into httptests 2016-12-06 10:26:57 +00:00
UbitUmarov ccaa7a4a8a save a few lists scaning 2016-12-06 10:26:36 +00:00
UbitUmarov 44588ce45e jenkins likes null httplisteners 2016-12-06 07:40:45 +00:00
UbitUmarov 8db69d2e02 remove redundante check for ssl listener 2016-12-06 07:26:26 +00:00
UbitUmarov 1680425f4d Merge branch 'master' into httptests 2016-12-04 23:39:15 +00:00
UbitUmarov 181b1ad82b HG: fix the never ending avatar confirmation when 2 users from same grid made friendship on another grid 2016-12-04 23:02:40 +00:00
UbitUmarov 51104be6d4 remove SOG.FromPartID from main code and flag it obsolete 2016-12-04 17:56:47 +00:00
Mandarinka Tasty 7c566dca5a The new Constant: integer OBJECT_REZZER_KEY = 32;
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-12-04 17:18:56 +00:00
UbitUmarov fcd1e36ed6 a few changes to new GetDisplaynames and friends 2016-12-04 17:01:49 +00:00
UbitUmarov e1cf34d6fb replace GetDisplaynames by a handler really usable as a client cap. Most capabilities.handlers are so it all things not propor PER CLIENT CAP handlers 2016-12-04 15:50:48 +00:00
Mandarinka Tasty 2a29a270da Adding new string-parameter: "region_max_prims" for llGetEnv(string name);
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-12-04 10:32:06 +00:00
UbitUmarov 2ff75e7692 ubMeshmerizer, fix the orientation of last triangle on top/bottom faces in case on circle hollow shape 2016-12-03 18:35:31 +00:00
UbitUmarov 6a8b8f3168 change a wrong error message and avoid a null ref (that may happen due to needed time delays) 2016-12-02 22:56:14 +00:00
UbitUmarov 9df95afd86 update httpserver 2016-12-02 13:54:11 +00:00
UbitUmarov b981ac42bc Merge branch 'master' into httptests 2016-12-02 13:51:30 +00:00
UbitUmarov 1fdd71f856 do a GC collect on last client exit 2016-12-01 07:49:17 +00:00
UbitUmarov 29f6e3fc7b fix a typo in dbs region range 2016-12-01 04:08:42 +00:00
UbitUmarov 874d663161 fix region area range 2016-12-01 04:02:29 +00:00
UbitUmarov 8299941517 fix region overlaps on registration 2016-12-01 03:45:43 +00:00
UbitUmarov cfb98050f7 a few changes to cache.cs ( currently not much used ) 2016-12-01 03:43:49 +00:00
AliciaRaven 813ee4e188 Remove unused integer vars from LLClientView 2016-12-01 03:11:34 +00:00
UbitUmarov adee1c1bb0 fix a null ref 2016-11-30 10:08:49 +00:00
UbitUmarov 2020cafc30 fix null ref on m_CacheCleanTimer control, add a gc.collect on manual floatsam fcache assets comand 2016-11-30 09:22:47 +00:00
UbitUmarov f2cad38b3d fix the FileCleanupTimer coment 2016-11-30 07:59:01 +00:00
UbitUmarov e19eb65c18 disable floatSam FileCleanupTimer option on ini.example since it is currently a broken resources expensive option. Users should do it by hand when its impact on region is acceptable 2016-11-30 07:52:50 +00:00
UbitUmarov 1863bb29df slow down automatic floatsamAssetCache CleanupExpiredFiles LOT to reduce impact on simulation and to give GC more changes of preventing it from eating up all avaialble physcical memory on loaded machines. 2016-11-30 07:43:17 +00:00
Mandarinka Tasty 7de2c8ae70 The new Constant: integer OBJECT_TEMP_ATTACHED = 34;
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-30 00:06:25 +00:00
UbitUmarov ebbb918404 Merge branch 'master' into httptests 2016-11-28 06:02:47 +00:00
UbitUmarov 9dd820765e change last patch a bit 2016-11-28 05:58:05 +00:00
Mandarinka Tasty 0bb959d8fd The implementation of new flags = parameters for llGetObjectDetails - Part II Constant: integer OBJECT_TOTAL_INVENTORY_COUNT = 31 Constant: integer OBJECT_GROUP_TAG = 33
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-28 05:35:13 +00:00
Mandarinka Tasty af3f2717fd The implementation of new flags = paramters for llGetObjectDetails - Part I Constant: integer OBJECT_CLICK_ACTION = 28; Constant: integer OBJECT_OMEGA = 29; Constant: integer OBJECT_PRIM_COUNT = 30;
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-28 05:20:32 +00:00
UbitUmarov 1aa4dbdb3f increase HG mapsearch spargetti; add more flexibility on input uri formats. To find regions in memory for a grid the http format needs to be used, because aditional compares made by viewers 2016-11-28 04:29:57 +00:00
UbitUmarov 6b017f94ea update httpserver dll fixing a memory leak 2016-11-27 15:23:08 +00:00
UbitUmarov 877d3092b4 Merge branch 'master' into httptests 2016-11-27 15:14:34 +00:00
UbitUmarov d3cd323f0c HG on links request build the URI in http format with a / at end, this should not be needed but is coerent with current serverURI 2016-11-27 15:07:14 +00:00
UbitUmarov 155f8dac1d BUG fix encoding or region size on HG LinkRegionRequest response 2016-11-27 02:12:12 +00:00
UbitUmarov 5cc0d6620d remove 2 more null refs i added to release memory 2016-11-26 05:08:46 +00:00
UbitUmarov b781de73e3 mantis 7656, partialy apply patch, changing the start scripts for now 2016-11-26 04:49:35 +00:00
Mandarinka Tasty d2bbd7ef2b Fix in cmdparams.Length for: SavePrimsXml2 and SaveXml
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-26 04:14:32 +00:00
Mandarinka Tasty 1e90417ac2 Fix in descriptions of: load xml, load xml2, save xml, save xml2
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-26 04:11:31 +00:00
UbitUmarov 019910afbd don't go seach for info we already have at hand.. and there is no region height on osGetRegionSize 2016-11-26 03:57:33 +00:00
UbitUmarov e60366ce92 avoid doing unnecessary heavy things on change physics rep 2016-11-26 03:29:22 +00:00
AliciaRaven 017069636a Increase float precision for windlight needed by scripts. mySQL Migration on regionwindlight table.
mySQL was setup to store smaller values because the viewers editor capped input, scripts can set higher precision so settings could change on region restart. This change brings mySQL more inline with PGSQL which uses doubles for all windlight floats.
2016-11-26 01:15:10 +00:00
UbitUmarov 6f1080368d reduce the resolution of llGetTime and llGetAndResetTime, to 1ms 2016-11-25 21:37:33 +00:00
UbitUmarov 935510d879 add llGetMaxScaleFactor and llGetMinScaleFactor 2016-11-25 18:35:23 +00:00
UbitUmarov b82a41d260 change llScaleByFactor (sorry Mandarinka). 2016-11-25 17:34:19 +00:00
Mandarinka Tasty e45245d267 Implementation of LSL_Integer llScaleByFactor(double scaling_factor)
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-25 16:22:10 +00:00
UbitUmarov f9b62b5680 work around viewers not suporting large regions on landmark creation. They still may display wrong offset; don't let inventory description be limited by asset description side on a ossl method 2016-11-24 20:53:04 +00:00
UbitUmarov 5202ae7bb4 revert changes to asset desc size, my bad.. this field will possible go away in future 2016-11-24 14:39:08 +00:00
UbitUmarov 94ec5884b7 fix llRez(AtRoot/Object) error messages on shared code path 2016-11-23 22:15:59 +00:00
UbitUmarov 75ad210b6b it is nice to save a file to atually change it... 2016-11-23 20:44:55 +00:00
UbitUmarov d9789596d4 take parcel_owner_is_god option from ini.example since it is not a recomended option for general use 2016-11-23 20:41:10 +00:00
UbitUmarov 72e20028d1 safeguard against unknown material replacemet 2016-11-23 20:26:14 +00:00
UbitUmarov b3eda582ec add to SynchronousRestFormsRequester a keepalive disable option, and make use of it on some friends conns 2016-11-23 19:30:55 +00:00
UbitUmarov 82ed6bde6e fix maturity on parcelInfo 2016-11-23 10:00:56 +00:00
UbitUmarov 59f6353ac1 close a resource on jobengine.close() 2016-11-22 22:29:13 +00:00
UbitUmarov f4745e5a35 full change ServiceThrottleModule. Let it still service RegionHandleRequest and UUIDNameRequest but this wrong since they are diferent services. Keeping gambling about not having 2 much overlaps of the 2 kind of requests. Remove double thottling of RegionHandleRequest 2016-11-22 22:24:54 +00:00
AliciaRaven 1a6cddf807 Minor fix to region default landing point sanity check 2016-11-22 21:23:01 +00:00
AliciaRaven 34d9596f9b Fix typo in a comment 2016-11-22 15:33:34 +00:00
AliciaRaven 94e48838d5 Include new Region.ini option for DefaultLandingPoint for teleports with no coords specified.
This is useful when using a Telehub would be to restrictive as it would block landmarks and map teleports. This location is only ever used when no coordinates are provided. If config value not set, the previous default of 128,128 is used.
2016-11-22 15:31:45 +00:00
Melanie Thielker b43717a397 Coding standards: A local variable may not use the prefix m_ 2016-11-22 11:47:50 +00:00
UbitUmarov 385a265971 supress some warnings by explict(confirm) the hide of parent fields 2016-11-22 09:35:37 +00:00
UbitUmarov 4e64445c39 replace datetime.now on just timming by faster utcnow 2016-11-22 05:18:06 +00:00
UbitUmarov 7524c7729f change asset description max size 2016-11-22 01:34:07 +00:00
UbitUmarov 8c19ea910a remove a wrong virtual dec ( no overides, and cant really have if used on a constructor like in assetlandmark) 2016-11-21 23:34:33 +00:00
UbitUmarov 81ef04c9fd fix type bug on hyperlinks 2016-11-21 16:55:51 +00:00
UbitUmarov bced98d6e9 work around some more warnings 2016-11-21 01:47:09 +00:00
UbitUmarov f794ab1a67 remove something VS decided to add 2016-11-21 01:22:01 +00:00
UbitUmarov b2c553b459 work around some warnings 2016-11-21 01:16:35 +00:00
UbitUmarov b70e48c8a5 handle HG lm tp to large regions in another way 2016-11-20 22:09:33 +00:00
UbitUmarov 0ce034d5d6 Merge branch 'master' of opensimulator.org:/var/git/opensim 2016-11-20 14:42:30 +00:00
AliciaRaven 05f7002445 Include config option to disable stats thread showing read/write stats in console.
Keeping default as true to retain current behaviour.
Also checked to prevent counters being added to so there wont be any integer overflows over time
2016-11-20 14:20:54 +00:00
AliciaRaven 1d998a770b Change some minor log messages to debug level in Rest client code. 2016-11-20 13:52:06 +00:00
UbitUmarov f1958e9f71 revert more object references removal on clients close because 2 many code paths don't have proper abort 2016-11-20 13:36:34 +00:00
UbitUmarov 902e8019de HG add a small delay before start sending region data 2016-11-20 05:06:50 +00:00
UbitUmarov 4c2ece3bcb HG LinkRegion receive region size also. Useless since olde r gatekeepers dont send it 2016-11-20 04:22:00 +00:00
UbitUmarov e2b580e569 HG LinkRegion sends region size also 2016-11-20 03:51:38 +00:00
UbitUmarov 93d502e0cf HG UserAgent, return serverURI 2016-11-20 03:19:19 +00:00
UbitUmarov 200183caf7 HG protocol is still broken for large regions. work around it on teleport via lm 2016-11-20 02:49:40 +00:00
UbitUmarov 586c81eecd give up on OutPacket drop condition on closing 2016-11-20 01:49:53 +00:00
UbitUmarov b887b7625e change OutPacket drop condition 2016-11-19 21:53:09 +00:00
UbitUmarov 8010413e64 remove some potencial null refs i did add in last days :( 2016-11-19 21:06:42 +00:00
UbitUmarov 08dee3fa34 fix pool parameters for httptests 2016-11-19 15:46:47 +00:00
UbitUmarov 7cb3d583a9 merge conflits 2016-11-19 15:45:41 +00:00
Melanie Thielker 28f7d429fc REST console v2. This is an incompatible protocol change. It degrades gracefully. 2016-11-19 02:28:31 +00:00
Melanie Thielker 6749c61d4f Fix the previous commit 2016-11-19 02:28:31 +00:00
UbitUmarov 1396c466f6 search accout by id not volatil user name (HG) 2016-11-18 17:30:15 +00:00
UbitUmarov b43f36abf1 add expire time for aliens 2016-11-18 15:16:11 +00:00
UbitUmarov 70eb37433d avoid a null ref. (needs better way) 2016-11-18 03:40:34 +00:00
UbitUmarov e281876ecd restore higher resolution clock on udpserver and lower uaeraccouts caching time 2016-11-18 03:25:29 +00:00
UbitUmarov d8812ba2d1 revert to lower resolution clock on udpserver for testing 2016-11-18 03:00:59 +00:00
UbitUmarov 0a8cf2ff08 put back skip of first drip call 2016-11-18 02:13:01 +00:00
UbitUmarov ba7904a3a8 a few more changes on potencial mem issues 2016-11-18 00:12:09 +00:00
UbitUmarov e21ac8b3c4 counting issus safeguard 2016-11-17 20:59:13 +00:00
UbitUmarov 35b37510fc explicitly remove some references, and other useless changes 2016-11-17 19:15:28 +00:00
UbitUmarov 8599a9a1ca add a missing dispose 2016-11-17 17:37:22 +00:00
UbitUmarov 2db22bf064 minor changes to ubMeshmerizer memory use 2016-11-17 13:57:45 +00:00
UbitUmarov 3d78388e55 restore large useracconts expire time for testing 2016-11-17 01:44:47 +00:00
UbitUmarov 5645abf69c fix a debug message 2016-11-17 00:13:21 +00:00
UbitUmarov e77f913116 minor: dont let rcvd agentupdates time jump back 2016-11-16 22:34:56 +00:00
UbitUmarov ec8393571f Merge branch 'master' into httptests 2016-11-16 13:07:23 +00:00
UbitUmarov 05ba77fd3b fix parsing of a vector4 and storing on a lsl quaternion needed for lightShare scripts 2016-11-16 03:47:48 +00:00
UbitUmarov 8dd9601fdc minor change to getdisplaynames cap url 2016-11-16 00:42:08 +00:00
UbitUmarov 8196f21af9 change camera collision check rules 2016-11-14 22:13:02 +00:00
UbitUmarov a858804b42 fix a vector range parsing 2016-11-14 22:08:39 +00:00
UbitUmarov e304acb06f fix unack bytes stats report 2016-11-14 05:15:41 +00:00
UbitUmarov ae17b5d203 reduce calls to physics world cast rays for camera collision check 2016-11-14 03:21:07 +00:00
UbitUmarov 3cb2b3b2d1 Merge branch 'master' of opensimulator.org:/var/git/opensim 2016-11-13 19:25:51 +00:00
UbitUmarov 4ebb4e371f prevent self call to llSetScriptState(ownname,FALSE) from blocking entire engine 2016-11-13 19:25:32 +00:00
Robert Adams e13ff5a392 BulletSim: update avatar velocity setting to the new TargetVelocity pattern.
Now PhysicsActor.Velocity.set and PhysicsActor.SetMomentum do the same thing
   of setting the instantanious avatar velocity. PhysicsActor.TargetVelocity
   sets a velocity target and the movement motor is used to accelerate the'
   avatar to that velocity.
2016-11-13 11:19:54 -08:00
UbitUmarov b6329fb784 mantis 8055: fix default value of npc options 2016-11-12 14:07:40 +00:00
UbitUmarov 4a7b8c1b41 ubOde fix a multhreading timming issue 2016-11-12 03:31:34 +00:00
AliciaRaven 077cfdf698 Update gitignore to include VS user config folder and remove old FxCop file which is not used 2016-11-11 22:05:48 +00:00
UbitUmarov c5d85b5465 reduce diferencs btw OpenSimDefaults.ini and OpenSim.ini.example 2016-11-11 16:04:20 +00:00
UbitUmarov 326821f66e reduce useraccouts cache time 2016-11-11 12:59:43 +00:00
UbitUmarov 56a79a252c GetUserAccounts cannot cache null accounts 2016-11-10 23:14:08 +00:00
UbitUmarov 58b7be48a9 ubOde: add a needed lock 2016-11-10 23:07:57 +00:00
UbitUmarov 743a9d617e also cache not found useraccounts when search by ID. Change the expire time to 5minutes in this case 2016-11-10 19:21:07 +00:00
UbitUmarov bddaef5122 on Select use again the priority queues to send ObjectProperties, including physics via caps. This is need to reduce useless redudance 2016-11-10 17:56:51 +00:00
UbitUmarov d1baa3e0c3 fix some invalid string.format arguments 2016-11-09 22:39:52 +00:00
UbitUmarov 53003db4cf stop warning about integer division cast to float 2016-11-09 22:12:27 +00:00
UbitUmarov 1e1d0d8204 move UserAccountCache access locking to its methods and not callers. 2016-11-09 20:09:49 +00:00
UbitUmarov 924c5fb55e minor cleanup 2016-11-09 19:41:07 +00:00
UbitUmarov c349a1a5e7 also log estimated average Util.GetTimeStampMS() resolution 2016-11-09 11:21:46 +00:00
UbitUmarov 94d2422230 change the clock source on udp outgoing, remove some dead code 2016-11-09 10:21:02 +00:00
UbitUmarov 92984556e1 change the clock source on tokenBucket 2016-11-08 23:09:53 +00:00
UbitUmarov 6c44dceced change display and log of normal script errors 2016-11-08 13:39:49 +00:00
UbitUmarov 6218913345 add some configuration options missing in OpenSimDeafults.ini but present in OpenSim.ini.example 2016-11-08 11:22:08 +00:00
UbitUmarov 7ebc08ad65 partially revert commit f29d5ad662387b97d9e881f28df584dc19fa8c07: if mesh asset does not contain data for PRIM type warn and use convex, do avoid physical peims going underground etc 2016-11-07 18:34:45 +00:00
UbitUmarov 07893ec3e7 a few more changes on the avatars Velocity/TargetVelocity/SetMomentum. Need talk with Robert before last changes bc of bullet 2016-11-07 16:03:23 +00:00
UbitUmarov d0ae8bb86a start removing old hack of using SetMomentum to just set instant velocity, now that TargetVelocity is avaiable 2016-11-07 12:45:20 +00:00
UbitUmarov 93ea7bd7f4 Merge branch 'master' into httptests 2016-11-07 11:36:43 +00:00
UbitUmarov d5a428c669 add a few more lsl constants for attachments 2016-11-07 11:35:32 +00:00
UbitUmarov 6956ada5e8 oops bug fix 2016-11-06 04:29:01 +00:00
UbitUmarov 014cd1ab42 restrict ubOde castray with terrain range only on horizontal plane, let it find physical avatars. 2016-11-06 03:53:12 +00:00
UbitUmarov d07f48605f change llGetTime() source clock 2016-11-06 02:43:33 +00:00
UbitUmarov 6bc76860d1 avoid a null ref, few changes to udp updates send 2016-11-05 23:56:55 +00:00
UbitUmarov 8cc8d15f95 some types may already be native in MOD_Api ConvertFromLSL 2016-11-05 20:14:11 +00:00
UbitUmarov 22d20dbf17 disable bad/broken throttle options 2016-11-05 19:17:25 +00:00
UbitUmarov 4b0457b2d3 Regression, really ??? 2016-11-05 18:44:45 +00:00
UbitUmarov 1c7b688db4 add suport for PRIM_SIT_TARGET on Set(link)PrimitveParameters. This may not be SL compatible. hack: to let active work with zero offset and rotation add a little Z value to offset 2016-11-05 18:28:30 +00:00
UbitUmarov 060350832a add suport for PRIM_SIT_TARGET on get(link)PrimitveParameters and fix typos 2016-11-05 16:50:41 +00:00
UbitUmarov be0a957363 add a few lsl constants and move some around 2016-11-05 15:42:37 +00:00
Mandarinka Tasty 72db2d064a It looks, that attachments show console command incorrectly returns Item ID. In fact, FromItem ID is returned. So I have added proper Item ID to be returned. There are cases, that FromItem ID is also useful, so I keep it for compatibility.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-05 13:47:29 +00:00
UbitUmarov bb32b3b4a1 Merge branch 'master' into httptests 2016-11-04 18:31:25 +00:00
UbitUmarov 9b78eb20c0 by design HUD objects are private 2016-11-04 11:58:52 +00:00
Mandarinka Tasty b0f87fba1c Implementation of new LSL function: list llGetAttachedList(key avatar); It also returns HUDs' keys.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2016-11-04 10:55:11 +00:00
UbitUmarov 0c39a3e348 Merge branch 'master' into httptests 2016-11-03 17:19:02 +00:00
UbitUmarov d2e380e81e on get asset with callback, do the callback even if asset not found. This is needed on same cases 2016-11-03 16:56:09 +00:00
UbitUmarov 01a4a883e0 Merge branch 'master' into httptests 2016-11-03 14:01:35 +00:00
UbitUmarov 4b326f8691 fix some coments, thanks Austin Tate 2016-11-03 14:00:45 +00:00
UbitUmarov 73b20c2ca2 XEngine: make calls to gc.collect on region startup scripts loading a configurable option, since it is very slow operation 2016-11-03 12:58:43 +00:00
UbitUmarov f29d5ad662 ubOde: if a mesh does not contain data for shape type PRIM, dont collide as convex as before but just don't collide matching the type NONE viewers display in this case 2016-11-02 22:33:32 +00:00
UbitUmarov 9480da06b9 only add a prim to physics in PhysicsShapeType if changing from type none. when viewers change ExtraPhysics parameters, send back the new values. 2016-11-02 21:42:32 +00:00
UbitUmarov 7c4f2b048f ignore prims with shape type none on max size check for physics
also on llStatus()
2016-10-25 20:44:41 +01:00
UbitUmarov db0c268140 mantis 8041: check target user password on save/load IAR 2016-10-25 20:16:23 +01:00
UbitUmarov 8c7fe3c0db Merge branch 'master' into httptests 2016-10-25 09:18:13 +01:00
Diva Canto 4c76a061c7 Flip master to 0.9.1 2016-10-24 09:21:44 -07:00
UbitUmarov d550b485f1 viewer crash bug fix: fis the udp packets split of SendEstateList() large lists; Enforce size limits on the estate lists since currently required for viewers compatibily; improve handling of changes with large selected items. This is still bad, users may need to close and reopen the region/estate information to get correct Allowed and Banned lists after a change. This happens because of viewer resent/outOfOrder packets that completly break this lists updates protocol 2016-10-24 10:23:31 +01:00
UbitUmarov 2ce0673af2 Merge branch 'master' into httptests 2016-10-21 17:58:17 +01:00
UbitUmarov 586e4cf163 ignore prims with shape type none on max size check for physics 2016-10-17 19:16:07 +01:00
UbitUmarov eaac332d00 fix a coment on OpenSim.ini.example ( mantis 8037) 2016-10-16 17:33:39 +01:00
UbitUmarov 90be326457 Xengine option AppDomainLoading default option true is causing problems with several mono versions. Until a fix is found change the default to false, so this is not a major problem for the less technical skilled users. 2016-10-15 21:06:17 +01:00
UbitUmarov 954bcbc5ef bug fix: let ALL avatar controls have a repeat rate controled by viewer (so as before commit 8a3958ad04 on this) 2016-10-15 20:44:18 +01:00
UbitUmarov 7cd4fa8cf5 bug fix: We can't filter out any of the avatar controls relative to movement, even if not flying (a condition i incorrectly added recently) in fact the entire AgentUpdates throotling is questionable, since its viewer Job. But keeping it... 2016-10-15 20:26:23 +01:00
UbitUmarov 085965b86c Merge branch 'master' into httptests 2016-10-11 02:16:16 +01:00
UbitUmarov 7494d7726a change math on GetParcelMaxPrimCount and GetSimulatorMaxPrimCount to reduce round errors, limit both to region max prims. consider ObjectBonus on last one also. Change a variable name in PrimLimitsModule to make it more clear 2016-10-11 01:14:53 +01:00
UbitUmarov 6b0094645c change some coments relative to ssl in config files 2016-10-10 20:14:02 +01:00
UbitUmarov 80d4f76d18 keep a unsecure http port up for external services (datasnapshot search). Only fire poolservices on main http listener 2016-10-09 20:18:20 +01:00
UbitUmarov 7aa4bd7006 add a comment about selfsigned certs 2016-10-09 01:15:53 +01:00
UbitUmarov 5b946405a0 changes to regions ssl suport: verify if hostnames are validate by the selected cert, make clear that for now all regions need to have the same ExternalHostName if using sll (due to other code that needs to be changed later) 2016-10-09 01:01:52 +01:00
UbitUmarov 9843e3776e Merge branch 'master' into httptests 2016-10-08 01:27:02 +01:00
UbitUmarov b51739e23e recover regions main http server ssl suport. Using a PKCS12 cert file, and not certs store for now. Option http_listener_cn, cert CN need to the same as external IP. Self sign certs do seem to work, but the viewers option NoVerifySLLCert needs to be set true. CA check is not done but they do check the IP 2016-10-06 21:35:11 +01:00
UbitUmarov 76a2d90dad remove attachment to event OnPreAgentUpdate that is doing nothing 2016-10-05 13:38:12 +01:00
UbitUmarov 2e863edfe9 Merge branch 'master' of opensimulator.org:/var/git/opensim 2016-10-05 13:18:14 +01:00
UbitUmarov 8a3958ad04 dont let ignored AgentUpdates change their throttles. Apply respective movement to physics on the handling thread, not heartbeat, avoiding missing transitions that should get into physics. Make some usefull sp state flags visible everywhere 2016-10-05 13:17:23 +01:00
Robert Adams e13fecfd3d BulletSim: zero velocity target when setting velocity through the
SetMomentum method.
2016-10-03 20:47:30 -07:00
UbitUmarov f3e7603c37 minor cleanup 2016-10-02 11:54:07 +01:00
UbitUmarov cd9d176c3c change avatar and attachments priority (downgraded) in priritizer option SimpleAngularDistance 2016-10-02 11:12:03 +01:00
UbitUmarov 878fac3fe3 fix comment telling the correct default physics engine 2016-10-01 20:26:37 +01:00
Robert Adams c7e4b14a26 BulletSim: fix problem with avatar velocity going to zero when flying across
region boundries.
Move code for Velocity, ForceVelocity and SetMomentum to BSPhysObject and
   have both BSPrim and BSCharacter share the code.
2016-09-30 19:35:44 -07:00
UbitUmarov 46dd899d9e MySQLFSAssetData asset type is a int not a varchar 2016-09-27 21:29:09 +01:00
UbitUmarov 9b2f186a8c MySQLFSAssetData on store, if a asset already exists, assume its a valid store or regions will keep retry. The other DBs do replace the item, why doesn't FS do the same? 2016-09-27 21:10:01 +01:00
UbitUmarov 58513fab8f save oar: simplify confusing successefull assets saving message 2016-09-27 16:49:55 +01:00
UbitUmarov 3e47df735b exclude invalid collision sound (used as collision type flag) from assets UUIDGather 2016-09-27 16:41:13 +01:00
UbitUmarov f6e77e3935 load oar; activate area cliping if bounding-origin option is given. as help says 2016-09-27 15:24:05 +01:00
UbitUmarov 6779f41e21 fix linknumbers when unlink the root prim 2016-09-24 22:21:51 +01:00
UbitUmarov 9e074988f0 remove a redundant and potencially dangerous child.AbsolutePosition = child.AbsolutePosition 2016-09-24 18:16:30 +01:00
UbitUmarov 42989176ec mute a debug message to mute jak daniels 2016-09-23 19:27:25 +01:00
UbitUmarov d196958cc4 make sendRegionInfoPacketToAll really send to all ( inc child agents) thx Jak Daniels 2016-09-23 18:56:47 +01:00
UbitUmarov f613b5f517 fix caching of wind and cloud packets in the case of several regions on a instance, that got broken with the necessary send to child agents. 2016-09-23 18:28:46 +01:00
UbitUmarov 22b531f2e4 make clouds a bit diferent on regions running on same instance.. well should be diferent .. :) 2016-09-23 17:13:59 +01:00
UbitUmarov f5189b2cdd do the same for legacy clouds (still visible on older viewer ie singu 1.8.7). Fix clouds update. Send clouds and wind also to child agents. 2016-09-23 16:04:43 +01:00
UbitUmarov 8d7f10e36b cache wind compressed data so cpu burning compression is only done after a change. Not happy with version scheme for several regions on same instance, but should be ok for now 2016-09-23 13:55:23 +01:00
UbitUmarov a6df626868 add a version tag to wind and cloud data updates to iclient 2016-09-23 13:03:16 +01:00
UbitUmarov 984cb38583 move wind generation out of heartbeat to a pool job. Use that to send to all clients and not one per client 2016-09-23 12:32:40 +01:00
UbitUmarov 7201352074 bug fix: add a missing return; add some error messages 2016-09-22 22:08:21 +01:00
UbitUmarov d3627c4f33 no need to send wind on avatar arrival when it is sent periodicly 2016-09-22 19:25:04 +01:00
UbitUmarov 94e983c95f mantis 8027: let osMessageAttachments also send to attachments child prims.. also changed its code structure and could not test 2016-09-22 17:05:05 +01:00
UbitUmarov bbe8ef0528 mantis 8027: allow messages to be sent to attachments child prims in llRegionSayTo 2016-09-22 02:05:25 +01:00
UbitUmarov bf17da3d61 check for null target, minor cleanup 2016-09-21 22:51:25 +01:00
UbitUmarov db1e75b0ac Merge branch 'master' into httptests 2016-09-21 15:26:30 +01:00
UbitUmarov 82997c5907 Merge branch 'master' into httptests 2016-09-18 20:02:59 +01:00
UbitUmarov e5383604cb Merge branch 'master' into httptests 2016-09-17 12:44:52 +01:00
UbitUmarov 606e9f99f3 forgot the dll 2016-09-03 08:52:15 +01:00
UbitUmarov 4f9378bf97 remove reuse context code, they had notthing worth using and on original code when reusing contexts still in use, etc. Change DLL information to make clear it is a opensim fork, so our responsability not original author 2016-09-03 08:50:22 +01:00
UbitUmarov 9aec227767 Merge branch 'master' into httptests 2016-09-03 07:51:53 +01:00
UbitUmarov 7ba3fb7b5d merge issue 2016-08-19 03:05:25 +01:00
UbitUmarov a0538eb53d fix entity update flags update 2016-08-07 20:53:38 +01:00
UbitUmarov 081c66631c move updates from updates queues into udp queues acording to their payload estimated size and udp sending capability on a time slice, instead always moving a arbitrary number of updates. 2016-08-07 17:07:09 +01:00
UbitUmarov 8d22b79ba4 several changes related to culling option 2016-08-07 14:30:27 +01:00
UbitUmarov 68a4e363dd Merge branch 'httptests' of opensimulator.org:/var/git/opensim into httptests 2016-08-07 00:24:17 +01:00
UbitUmarov 4c7b2b2ed7 Merge branch 'master' into httptests 2016-08-04 06:14:46 +01:00
UbitUmarov c035871e76 Merge branch 'master' into httptests 2016-08-02 18:19:34 +01:00
UbitUmarov d0ccaead0e Merge branch 'master' into httptests 2016-08-02 16:54:11 +01:00
UbitUmarov 3b76b2f176 Merge branch 'master' into httptests 2016-08-02 01:40:00 +01:00
UbitUmarov 5576a100ce Merge branch 'master' into httptests 2016-08-01 01:05:31 +01:00
UbitUmarov a9befe1c62 Merge branch 'master' into httptests 2016-07-31 23:19:51 +01:00
UbitUmarov 62d0e50ca4 Merge branch 'master' into httptests 2016-07-31 00:04:35 +01:00
UbitUmarov a63aef978a Merge branch 'master' into httptests 2016-07-30 21:02:08 +01:00
UbitUmarov cb23d1bf24 Merge branch 'master' into httptests 2016-07-30 20:13:16 +01:00
UbitUmarov 22b1b91599 Merge branch 'master' into httptests 2016-07-30 04:31:26 +01:00
UbitUmarov 18bcacdded Merge branch 'master' into httptests 2016-07-30 01:53:25 +01:00
UbitUmarov 3cf8a58f9d Merge branch 'master' into httptests 2016-07-28 08:25:04 +01:00
UbitUmarov 376084a2e5 Merge branch 'master' into httptests 2016-07-27 23:39:50 +01:00
UbitUmarov 2062418c56 add another gatekeeper login fail reason reply 2016-07-21 11:34:17 +01:00
UbitUmarov 475087de79 add a gatekeeper login fail reason reply 2016-07-21 11:22:13 +01:00
UbitUmarov 2cacd77d41 let FS get a answer to folder uuid.zero, (still seems a no op); send
Library folders list"
2016-07-19 23:50:39 +01:00
UbitUmarov 2c6db4f617 fix a typo 2016-07-19 19:01:03 +01:00
UbitUmarov 46c55b6fa0 some cleanup on FetchInvDescHandler 2016-07-19 18:56:32 +01:00
UbitUmarov eaefae7e20 don't loose inventory items when there are bad folders 2016-07-17 22:52:58 +01:00
UbitUmarov 79e464f33f dont try dequeues if didnt reacquired lock 2016-07-17 16:16:24 +01:00
UbitUmarov e881562d34 fix drop on delayed events processing 2016-07-17 14:15:46 +01:00
UbitUmarov 442b272228 add a Drop method to PollService Event handlers, Drop requests on connections known to be lost or delay event check if they are sending a response 2016-07-17 13:20:56 +01:00
UbitUmarov 6a02ac634b identify contexts by ID now avaiable ( pipeline serialization) 2016-07-17 11:39:38 +01:00
UbitUmarov c802368c86 replace http server with test version 2016-07-17 10:49:59 +01:00
1418 changed files with 190781 additions and 167353 deletions

2
.gitignore vendored
View File

@ -31,6 +31,7 @@
*/*/*/*/*/bin
*/*/*/*/*/*/bin
*/*/*/*/*/*/*/bin
.vs/
addon-modules/
bin/Debug/*.dll
bin/*.dll.mdb
@ -93,7 +94,6 @@ TAGS
Makefile.local
bin/.version
compile.bat
addon-modules
OpenSim/Data/Tests/test-results/
OpenSim/Framework/Serialization/Tests/test-results/
OpenSim/Framework/Servers/Tests/test-results/

View File

@ -145,7 +145,12 @@
</exec>
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.services.inventoryservice.tests)==0}" />
<delete dir="%temp%"/>
<exec program="${nunitcmd}" failonerror="true" resultproperty="testresult.opensim.tests.permissions">
<arg value="./bin/OpenSim.Tests.Permissions.dll" />
</exec>
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.tests.permissions)==0}" />
<delete dir="%temp%"/>
</target>
<target name="test-stress" depends="build, find-nunit">
@ -260,6 +265,11 @@
<arg value="-xml=test-results/OpenSim.Services.InventoryService.Tests.dll-Results.xml" />
</exec>
<exec program="${nunitcmd}" failonerror="false" resultproperty="testresult.opensim.tests.permissions">
<arg value="./bin/OpenSim.Tests.Permissions.dll" />
<arg value="-xml=test-results/OpenSim.Tests.Permissions.dll-Results.xml" />
</exec>
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.framework.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.framework.servers.tests)==0}" />
@ -271,6 +281,7 @@
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.data.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.capabilities.handlers.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.services.inventoryservice.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.tests.permissions)==0}" />
</target>
<target name="doxygen">

View File

@ -1,38 +1,35 @@
# Building on Windows
Steps:
* runprebuild.bat
* Load OpenSim.sln into Visual Studio .NET and build the solution.
* chdir bin
* copy OpenSim.ini.example to OpenSim.ini and other appropriate files in bin/config-include
* run OpenSim.exe
# Building on Linux
# Building on Linux / Mac
Prereqs:
* Mono >= 2.4.3
* Nant >= 0.85
* On some Linux distributions you may need to install additional packages.
See http://opensimulator.org/wiki/Dependencies for more information.
* May also use xbuild (included in mono distributions)
* May use Monodevelop, a cross-platform IDE
* Mono > 5.0
* On some Linux distributions you may need to install additional packages.
* msbuild or xbuild if still supported by the mono version
* See http://opensimulator.org/wiki/Dependencies for more information.
From the distribution type:
* ./runprebuild.sh
* nant (or !* xbuild)
* type msbuild or xbuild
* cd bin
* copy OpenSim.ini.example to OpenSim.ini and other appropriate files in bin/config-include
* run mono OpenSim.exe
!* xbuild option switches
!* clean: xbuild /target:clean
!* debug: (default) xbuild /property:Configuration=Debug
!* release: xbuild /property:Configuration=Release
# Using Monodevelop
From the distribution type:
* ./runprebuild.sh
* type monodevelop OpenSim.sln
* review and change those ini files according to your needs
* windows: execute opensim.exe or opensim32.exe for small regions
* linux: run ./opensim.sh
* msbuild (xbuild) option switches
* clean: msbuild /target:clean
* debug: (default) msbuild /property:Configuration=Debug
* release: msbuild /property:Configuration=Release
# References

View File

@ -4,14 +4,9 @@ The following people have contributed to OpenSim (Thank you for your effort!)
These folks represent the current core team for OpenSim, and are the
people that make the day to day of OpenSim happen.
* justincc (OSVW Consulting, justincc.org)
* Melanie Thielker
* Diva (Crista Lopes, University of California, Irvine)
* BlueWall (James Hughes)
* Nebadon Izumi (Michael Cerquoni, OSgrid)
* Snoopy Pfeffer
* Robert Adams (MisterBlue)
* Oren Hurvitz (Kitely)
* Kevin Cozens
* Leal Duarte (Ubit Umarov)
@ -20,11 +15,8 @@ Core developers who have temporarily (we hope) gone chasing the white rabbit.
They are in all similar to the active core developers, except that they haven't
been that active lately, so their voting rights are awaiting their come back.
* Teravus (w3z)
* Arthur Rodrigo S Valadares (IBM)
* Dan Lake
* Marck
* Mic Bowman
* Nebadon Izumi (Michael Cerquoni, OSgrid)
* Alicia Raven
= Past Open Sim Developers =
These folks are alumns of the OpenSim core group, but are now
@ -57,7 +49,15 @@ where we are today.
* John Hurliman
* chi11ken (Genkii)
* dahlia
* justincc (OSVW Consulting, justincc.org)
* Arthur Rodrigo S Valadares (IBM)
* BlueWall (James Hughes)
* Dan Lake
* Marck
* Mic Bowman
* Oren Hurvitz (Kitely)
* Snoopy Pfeffer
* Teravus (w3z)
= Additional OpenSim Contributors =
These folks have contributed code patches or content to OpenSimulator to help make it
@ -69,9 +69,9 @@ what it is today.
* alex_carnell
* Alan Webb (IBM)
* Aleric
* Alicia Raven
* Allen Kerensky
* BigFootAg
* Bill Blight
* BlueWall Slade
* bobshaffer2
* brianw/Sir_Ahzz
@ -89,6 +89,7 @@ what it is today.
* dmiles (Daxtron Labs)
* Dong Jun Lan (IBM)
* DoranZemlja
* Drake Arconis
* dr0b3rts
* dslake
* eeyore
@ -107,6 +108,7 @@ what it is today.
* Flyte Xevious
* Freaky Tech
* Garmin Kawaguichi
* Geir Noklebye
* Glenn Martin (MOSES)
* Gryc Ueusp
* H-H-H (ginge264)
@ -115,6 +117,7 @@ what it is today.
* Imaze Rhiano
* Intimidated
* Jak Daniels
* Jeff Kelly
* Jeremy Bongio (IBM)
* jhurliman
* John R Sohn (XenReborn)
@ -128,6 +131,7 @@ what it is today.
* KittyLiu
* Kurt Taylor (IBM)
* Lani Global
* lickx
* lillith_xue
* lkalif
* LuciusSirnah
@ -136,8 +140,10 @@ what it is today.
* Magnuz Binder
* maimedleech
* Mana Janus
* Mandarinka Tasty
* MarcelEdward
* Matt Lehmann
* mewtwo0641
* Mic Bowman
* Michelle Argus
* Michael Cortez (The Flotsam Project, http://osflotsam.org/)
@ -145,6 +151,7 @@ what it is today.
* Micheil Merlin
* Mike Osias (IBM)
* Mike Pitman (IBM)
* Mike Rieker (Dreamnation)
* mikemig
* mikkopa/_someone - RealXtend
* Misterblue
@ -158,6 +165,7 @@ what it is today.
* openlifegrid.com
* otakup0pe
* Pixel Tomsen
* Quill Littlefeather
* ralphos
* RemedyTomm
* Revolution
@ -177,15 +185,20 @@ what it is today.
* SpotOn3D
* Stefan_Boom / stoehr
* Steven Zielinski (MOSES)
* Stolen Ruby
* Strawberry Fride
* Talun
* TechplexEngineer (Blake Bourque)
* TBG Renfold
* Terry Ford
* tglion
* tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud)
* TomDataWorks
* TomTheDragon (muckwaddle)
* tyre
* uriesk
* Vegaslon <vegaslon@gmail.com>
* Vincent Sylvester
* VikingErik
* Vytek
* webmage (IBM)

File diff suppressed because it is too large Load Diff

View File

@ -46,7 +46,7 @@ namespace OpenSim.Groups
public string AccessToken;
}
public class ExtendedGroupMembersData
public class ExtendedGroupMembersData
{
// This is the only difference: this is a string
public string AgentID;
@ -65,7 +65,7 @@ namespace OpenSim.Groups
public UUID RoleID;
// This is the only difference: this is a string
public string MemberID;
}
public struct ExtendedGroupNoticeData

105
OpenSim/Addons/Groups/GroupsMessagingModule.cs Normal file → Executable file
View File

@ -131,7 +131,7 @@ namespace OpenSim.Groups
{
if (!m_groupMessagingEnabled)
return;
scene.RegisterModuleInterface<IGroupsMessagingModule>(this);
m_sceneList.Add(scene);
@ -163,7 +163,7 @@ namespace OpenSim.Groups
if (m_groupData == null)
{
m_log.Error("[Groups.Messaging]: Could not get IGroupsServicesConnector, GroupsMessagingModule is now disabled.");
RemoveRegion(scene);
RemoveRegion(scene);
return;
}
@ -218,7 +218,7 @@ namespace OpenSim.Groups
m_msgTransferModule = null;
}
public Type ReplaceableInterface
public Type ReplaceableInterface
{
get { return null; }
}
@ -252,7 +252,7 @@ namespace OpenSim.Groups
m_debugEnabled = verbose;
MainConsole.Instance.OutputFormat("{0} verbose logging set to {1}", Name, m_debugEnabled);
MainConsole.Instance.Output("{0} verbose logging set to {1}", Name, m_debugEnabled);
}
/// <summary>
@ -262,7 +262,7 @@ namespace OpenSim.Groups
{
if (m_debugEnabled)
m_log.DebugFormat("[Groups.Messaging]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
GroupRecord groupInfo = m_groupData.GetGroupRecord(agentID.ToString(), groupID, null);
if (groupInfo != null)
@ -279,7 +279,7 @@ namespace OpenSim.Groups
{
SendMessageToGroup(im, groupID, UUID.Zero, null);
}
public void SendMessageToGroup(
GridInstantMessage im, UUID groupID, UUID sendingAgentForGroupCalls, Func<GroupMembersData, bool> sendCondition)
{
@ -355,9 +355,9 @@ namespace OpenSim.Groups
{
if (!sendCondition(member))
{
if (m_debugEnabled)
if (m_debugEnabled)
m_log.DebugFormat(
"[Groups.Messaging]: Not sending to {0} as they do not fulfill send condition",
"[Groups.Messaging]: Not sending to {0} as they do not fulfill send condition",
member.AgentID);
continue;
@ -366,7 +366,7 @@ namespace OpenSim.Groups
else if (hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID))
{
// Don't deliver messages to people who have dropped this session
if (m_debugEnabled)
if (m_debugEnabled)
m_log.DebugFormat("[Groups.Messaging]: {0} has dropped session, not delivering to them", member.AgentID);
continue;
@ -414,7 +414,7 @@ namespace OpenSim.Groups
"[Groups.Messaging]: SendMessageToGroup for group {0} with {1} visible members, {2} online took {3}ms",
groupID, groupMembersCount, groupMembers.Count(), Environment.TickCount - requestStartTick);
}
#region SimGridEventHandlers
void OnClientLogin(IClientAPI client)
@ -445,13 +445,13 @@ namespace OpenSim.Groups
// The instant message module will only deliver messages of dialog types:
// MessageFromAgent, StartTyping, StopTyping, MessageFromObject
//
// Any other message type will not be delivered to a client by the
// Any other message type will not be delivered to a client by the
// Instant Message Module
UUID regionID = new UUID(msg.RegionID);
if (m_debugEnabled)
{
m_log.DebugFormat("[Groups.Messaging]: {0} called, IM from region {1}",
m_log.DebugFormat("[Groups.Messaging]: {0} called, IM from region {1}",
System.Reflection.MethodBase.GetCurrentMethod().Name, regionID);
DebugGridInstantMessage(msg);
@ -508,7 +508,7 @@ namespace OpenSim.Groups
m_log.DebugFormat("[Groups.Messaging]: skipping agent {0} because he has an agent in region of origin", sp.UUID);
return;
}
else
else
{
if (m_debugEnabled)
m_log.DebugFormat("[Groups.Messaging]: not skipping agent {0}", sp.UUID);
@ -531,7 +531,7 @@ namespace OpenSim.Groups
}
}
});
}
}
}
@ -555,7 +555,7 @@ namespace OpenSim.Groups
break;
case (byte)InstantMessageDialog.SessionSend:
// User hasn't dropped, so they're in the session,
// User hasn't dropped, so they're in the session,
// maybe we should deliver it.
IClientAPI client = GetActiveClient(new UUID(msg.toAgentID));
if (client != null)
@ -599,36 +599,34 @@ namespace OpenSim.Groups
{
if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: Sending chatterbox invite instant message");
UUID fromAgent = new UUID(msg.fromAgentID);
// Force? open the group session dialog???
// and simultanously deliver the message, so we don't need to do a seperate client.SendInstantMessage(msg);
IEventQueue eq = activeClient.Scene.RequestModuleInterface<IEventQueue>();
eq.ChatterboxInvitation(
GroupID
, groupInfo.GroupName
, new UUID(msg.fromAgentID)
, msg.message
, AgentID
, msg.fromAgentName
, msg.dialog
, msg.timestamp
, msg.offline == 1
, (int)msg.ParentEstateID
, msg.Position
, 1
, new UUID(msg.imSessionID)
, msg.fromGroup
, OpenMetaverse.Utils.StringToBytes(groupInfo.GroupName)
);
if (eq != null)
{
eq.ChatterboxInvitation(
GroupID
, groupInfo.GroupName
, fromAgent
, msg.message
, AgentID
, msg.fromAgentName
, msg.dialog
, msg.timestamp
, msg.offline == 1
, (int)msg.ParentEstateID
, msg.Position
, 1
, new UUID(msg.imSessionID)
, msg.fromGroup
, OpenMetaverse.Utils.StringToBytes(groupInfo.GroupName)
);
eq.ChatterBoxSessionAgentListUpdates(
new UUID(GroupID)
, AgentID
, new UUID(msg.toAgentID)
, false //canVoiceChat
, false //isModerator
, false //text mute
, true // Enter
);
var update = new GroupChatListAgentUpdateData(AgentID);
var updates = new List<GroupChatListAgentUpdateData> { update };
eq.ChatterBoxSessionAgentListUpdates(GroupID, new UUID(msg.toAgentID), updates);
}
}
}
}
@ -655,7 +653,7 @@ namespace OpenSim.Groups
UUID AgentID = new UUID(im.fromAgentID);
GroupRecord groupInfo = m_groupData.GetGroupRecord(UUID.Zero.ToString(), GroupID, null);
if (groupInfo != null)
{
AgentInvitedToGroupChatSession(AgentID.ToString(), GroupID);
@ -663,15 +661,12 @@ namespace OpenSim.Groups
ChatterBoxSessionStartReplyViaCaps(remoteClient, groupInfo.GroupName, GroupID);
IEventQueue queue = remoteClient.Scene.RequestModuleInterface<IEventQueue>();
queue.ChatterBoxSessionAgentListUpdates(
GroupID
, AgentID
, new UUID(im.toAgentID)
, false //canVoiceChat
, false //isModerator
, false //text mute
, true
);
if (queue != null)
{
var update = new GroupChatListAgentUpdateData(AgentID);
var updates = new List<GroupChatListAgentUpdateData> { update };
queue.ChatterBoxSessionAgentListUpdates(GroupID, remoteClient.AgentId, updates);
}
}
}
@ -681,7 +676,7 @@ namespace OpenSim.Groups
UUID GroupID = new UUID(im.imSessionID);
UUID AgentID = new UUID(im.fromAgentID);
if (m_debugEnabled)
if (m_debugEnabled)
m_log.DebugFormat("[Groups.Messaging]: Send message to session for group {0} with session ID {1}", GroupID, im.imSessionID.ToString());
//If this agent is sending a message, then they want to be in the session
@ -713,11 +708,7 @@ namespace OpenSim.Groups
bodyMap.Add("session_info", sessionMap);
IEventQueue queue = remoteClient.Scene.RequestModuleInterface<IEventQueue>();
if (queue != null)
{
queue.Enqueue(queue.BuildEvent("ChatterBoxSessionStartReply", bodyMap), remoteClient.AgentId);
}
queue?.Enqueue(queue.BuildEvent("ChatterBoxSessionStartReply", bodyMap), remoteClient.AgentId);
}
private void DebugGridInstantMessage(GridInstantMessage im)

346
OpenSim/Addons/Groups/GroupsModule.cs Normal file → Executable file
View File

@ -38,7 +38,7 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using DirFindFlags = OpenMetaverse.DirectoryManager.DirFindFlags;
using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Groups
{
@ -51,7 +51,7 @@ namespace OpenSim.Groups
private List<Scene> m_sceneList = new List<Scene>();
private IMessageTransferModule m_msgTransferModule = null;
private IGroupsServicesConnector m_groupData = null;
private IUserManagement m_UserManagement;
@ -127,7 +127,7 @@ namespace OpenSim.Groups
m_debugEnabled = verbose;
MainConsole.Instance.OutputFormat("{0} verbose logging set to {1}", Name, m_debugEnabled);
MainConsole.Instance.Output("{0} verbose logging set to {1}", Name, m_debugEnabled);
}
public void RegionLoaded(Scene scene)
@ -210,7 +210,7 @@ namespace OpenSim.Groups
if (m_debugEnabled) m_log.Debug("[Groups]: Shutting down Groups module.");
}
public Type ReplaceableInterface
public Type ReplaceableInterface
{
get { return null; }
}
@ -233,7 +233,7 @@ namespace OpenSim.Groups
if (m_debugEnabled) m_log.DebugFormat("[Groups]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
client.OnAgentDataUpdateRequest += OnAgentDataUpdateRequest;
client.OnRequestAvatarProperties += OnRequestAvatarProperties;
//client.OnRequestAvatarProperties += OnRequestAvatarProperties;
}
@ -249,7 +249,7 @@ namespace OpenSim.Groups
// There might be some problem with the thread we're generating this on but not
// doing the update at this time causes problems (Mantis #7920 and #7915)
// TODO: move sending this update to a later time in the rootification of the client.
if(!sp.haveGroupInformation)
if(!sp.m_haveGroupInformation)
SendAgentGroupDataUpdate(sp.ControllingClient, false);
}
@ -261,7 +261,7 @@ namespace OpenSim.Groups
// Used for Notices and Group Invites/Accept/Reject
sp.ControllingClient.OnInstantMessage -= OnInstantMessage;
}
/*
private void OnRequestAvatarProperties(IClientAPI remoteClient, UUID avatarID)
{
if (m_debugEnabled) m_log.DebugFormat("[Groups]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
@ -269,7 +269,7 @@ namespace OpenSim.Groups
GroupMembershipData[] avatarGroups = GetProfileListedGroupMemberships(remoteClient, avatarID);
remoteClient.SendAvatarGroupsReply(avatarID, avatarGroups);
}
*/
private void OnClientClosed(UUID AgentId, Scene scene)
{
if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
@ -281,7 +281,7 @@ namespace OpenSim.Groups
if (client != null)
{
client.OnAgentDataUpdateRequest -= OnAgentDataUpdateRequest;
client.OnRequestAvatarProperties -= OnRequestAvatarProperties;
//client.OnRequestAvatarProperties -= OnRequestAvatarProperties;
// make child possible not called?
client.OnUUIDGroupNameRequest -= HandleUUIDGroupNameRequest;
client.OnInstantMessage -= OnInstantMessage;
@ -318,7 +318,7 @@ namespace OpenSim.Groups
SendAgentGroupDataUpdate(remoteClient, false);
// also current viewers do ignore it and ask later on a much nicer thread
// also current viewers do ignore it and ask later on a much nicer thread
// its a info request not a change, so nothing is sent to others
// they do get the group title with the avatar object update on arrivel to a region
}
@ -344,14 +344,24 @@ namespace OpenSim.Groups
private void OnInstantMessage(IClientAPI remoteClient, GridInstantMessage im)
{
if (m_debugEnabled) m_log.DebugFormat("[Groups]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
if (m_debugEnabled)
m_log.DebugFormat("[Groups]: OnInstantMessage called");
if(remoteClient == null || !remoteClient.IsActive || remoteClient.AgentId == UUID.Zero)
return;
Scene scene = (Scene)remoteClient.Scene;
if (scene == null)
return;
string remoteAgentIDstr = remoteClient.AgentId.ToString();
//m_log.DebugFormat("[Groups]: IM From {0} to {1} msg {2} type {3}", im.fromAgentID, im.toAgentID, im.message, (InstantMessageDialog)im.dialog);
// Group invitations
if ((im.dialog == (byte)InstantMessageDialog.GroupInvitationAccept) || (im.dialog == (byte)InstantMessageDialog.GroupInvitationDecline))
{
UUID inviteID = new UUID(im.imSessionID);
GroupInviteInfo inviteInfo = m_groupData.GetAgentToGroupInvite(GetRequestingAgentIDStr(remoteClient), inviteID);
GroupInviteInfo inviteInfo = m_groupData.GetAgentToGroupInvite(remoteAgentIDstr, inviteID);
if (inviteInfo == null)
{
@ -374,7 +384,7 @@ namespace OpenSim.Groups
// and the sessionid is the role
string reason = string.Empty;
if (!m_groupData.AddAgentToGroup(GetRequestingAgentIDStr(remoteClient), invitee.ToString(), inviteInfo.GroupID, inviteInfo.RoleID, string.Empty, out reason))
if (!m_groupData.AddAgentToGroup(remoteAgentIDstr, invitee.ToString(), inviteInfo.GroupID, inviteInfo.RoleID, string.Empty, out reason))
remoteClient.SendAgentAlertMessage("Unable to add you to the group: " + reason, false);
else
{
@ -401,121 +411,237 @@ namespace OpenSim.Groups
}
}
m_groupData.RemoveAgentToGroupInvite(GetRequestingAgentIDStr(remoteClient), inviteID);
m_groupData.RemoveAgentToGroupInvite(remoteAgentIDstr, inviteID);
}
// Reject
if (im.dialog == (byte)InstantMessageDialog.GroupInvitationDecline)
{
if (m_debugEnabled) m_log.DebugFormat("[Groups]: Received a reject invite notice.");
m_groupData.RemoveAgentToGroupInvite(GetRequestingAgentIDStr(remoteClient), inviteID);
if (m_debugEnabled)
m_log.DebugFormat("[Groups]: Received a reject invite notice.");
m_groupData.RemoveAgentFromGroup(GetRequestingAgentIDStr(remoteClient), inviteInfo.AgentID, inviteInfo.GroupID);
m_groupData.RemoveAgentToGroupInvite(remoteAgentIDstr, inviteID);
m_groupData.RemoveAgentFromGroup(remoteAgentIDstr, inviteInfo.AgentID, inviteInfo.GroupID);
}
}
}
// Group notices
if ((im.dialog == (byte)InstantMessageDialog.GroupNotice))
else if ((im.dialog == (byte)InstantMessageDialog.GroupNotice))
{
if (!m_groupNoticesEnabled)
return;
UUID GroupID = new UUID(im.toAgentID);
GroupMembershipData grpMemberData = m_groupData.GetAgentGroupMembership(remoteAgentIDstr, remoteAgentIDstr, GroupID);
if (grpMemberData == null)
{
remoteClient.SendAgentAlertMessage("Group membership not found", false);
return;
}
UUID GroupID = new UUID(im.toAgentID);
if (m_groupData.GetGroupRecord(GetRequestingAgentIDStr(remoteClient), GroupID, null) != null)
if ((grpMemberData.GroupPowers & (ulong)GroupPowers.SendNotices) == 0)
{
UUID NoticeID = UUID.Random();
string Subject = im.message.Substring(0, im.message.IndexOf('|'));
string Message = im.message.Substring(Subject.Length + 1);
remoteClient.SendAgentAlertMessage("No permission to send notice to group", false);
return;
}
InventoryItemBase item = null;
bool hasAttachment = false;
int index = im.message.IndexOf('|');
if (index < 0)
return;
if (im.binaryBucket.Length >= 1 && im.binaryBucket[0] > 0)
string Subject = im.message.Substring(0, index);
string Message = im.message.Substring(index + 1);
UUID NoticeID = UUID.Random();
InventoryItemBase item = null;
bool hasAttachment = false;
if (im.binaryBucket.Length >= 1 && im.binaryBucket[0] > 0)
{
UUID itemID = UUID.Zero;
UUID ownerID = UUID.Zero;
try
{
hasAttachment = true;
string binBucket = OpenMetaverse.Utils.BytesToString(im.binaryBucket);
binBucket = binBucket.Remove(0, 14).Trim();
string binBucket = Utils.BytesToString(im.binaryBucket);
binBucket = binBucket.Substring(15); // remove extra LLSD pre header
OSD binBucketOSD = OSDParser.DeserializeLLSDXml(binBucket);
if (binBucketOSD is OSDMap)
{
OSDMap binBucketMap = (OSDMap)binBucketOSD;
UUID itemID = binBucketMap["item_id"].AsUUID();
UUID ownerID = binBucketMap["owner_id"].AsUUID();
item = m_sceneList[0].InventoryService.GetItem(ownerID, itemID);
}
else
m_log.DebugFormat("[Groups]: Received OSD with unexpected type: {0}", binBucketOSD.GetType());
OSDMap binBucketMAP = (OSDMap)OSDParser.DeserializeLLSDXml(binBucket);
itemID = binBucketMAP["item_id"].AsUUID();
ownerID = binBucketMAP["owner_id"].AsUUID();
}
catch
{
m_log.DebugFormat("[GROUPS]: failed to decode group notice bucket");
return;
}
if (m_groupData.AddGroupNotice(GetRequestingAgentIDStr(remoteClient), GroupID, NoticeID, im.fromAgentName, Subject, Message,
hasAttachment,
(byte)(item == null ? 0 : item.AssetType),
item == null ? null : item.Name,
item == null ? UUID.Zero : item.ID,
item == null ? UUID.Zero.ToString() : item.Owner.ToString()))
if (itemID != UUID.Zero && ownerID != UUID.Zero)
{
if (OnNewGroupNotice != null)
item = scene.InventoryService.GetItem(ownerID, itemID);
if(item != null)
{
OnNewGroupNotice(GroupID, NoticeID);
}
// Send notice out to everyone that wants notices
foreach (GroupMembersData member in m_groupData.GetGroupMembers(GetRequestingAgentIDStr(remoteClient), GroupID))
{
if (member.AcceptNotices)
if ((item.CurrentPermissions & (uint)(PermissionMask.Transfer | PermissionMask.Copy)) !=
(uint)(PermissionMask.Transfer | PermissionMask.Copy))
{
// Build notice IIM, one of reach, because the sending may be async
GridInstantMessage msg = CreateGroupNoticeIM(UUID.Zero, NoticeID, (byte)OpenMetaverse.InstantMessageDialog.GroupNotice);
msg.toAgentID = member.AgentID.Guid;
OutgoingInstantMessage(msg, member.AgentID);
remoteClient.SendAgentAlertMessage("Item must be have Copy and Transfer rights to attach to group notice", false);
return;
}
}
hasAttachment = true;
}
}
if (m_groupData.AddGroupNotice(remoteAgentIDstr, GroupID, NoticeID, im.fromAgentName, Subject, Message,
hasAttachment,
(byte)(item == null ? 0 : item.AssetType),
item == null ? null : item.Name,
item == null ? UUID.Zero : item.ID,
item == null ? UUID.Zero.ToString() : item.Owner.ToString()))
{
OnNewGroupNotice?.Invoke(GroupID, NoticeID);
// Send notice out to everyone that wants notices
foreach (GroupMembersData member in m_groupData.GetGroupMembers(remoteAgentIDstr, GroupID))
{
GridInstantMessage msg = CreateGroupNoticeIM(UUID.Zero, NoticeID, (byte)InstantMessageDialog.GroupNotice);
if (member.AcceptNotices)
{
// Build notice IIM, one of reach, because the sending may be async
msg.toAgentID = member.AgentID.Guid;
OutgoingInstantMessage(msg, member.AgentID);
}
}
}
}
if (im.dialog == (byte)InstantMessageDialog.GroupNoticeInventoryAccepted)
{
if (im.binaryBucket.Length < 16) // Invalid
if (!m_groupNoticesEnabled)
return;
//// 16 bytes are the UUID. Maybe.
// UUID folderID = new UUID(im.binaryBucket, 0);
UUID noticeID = new UUID(im.imSessionID);
GroupNoticeInfo notice = m_groupData.GetGroupNotice(remoteClient.AgentId.ToString(), noticeID);
if (notice != null)
if (m_debugEnabled)
m_log.DebugFormat("[xmlGROUPS]: Accepted notice {0} for {1}", noticeID, remoteClient.AgentId);
if (noticeID == UUID.Zero)
return;
UUID folderID = UUID.Zero;
try
{
UUID giver = new UUID(im.toAgentID);
string tmp = string.Empty;
Util.ParseUniversalUserIdentifier(notice.noticeData.AttachmentOwnerID, out giver, out tmp, out tmp, out tmp, out tmp);
m_log.DebugFormat("[Groups]: Giving inventory from {0} to {1}", giver, remoteClient.AgentId);
string message;
InventoryItemBase itemCopy = ((Scene)(remoteClient.Scene)).GiveInventoryItem(remoteClient.AgentId,
giver, notice.noticeData.AttachmentItemID, out message);
if (itemCopy == null)
{
remoteClient.SendAgentAlertMessage(message, false);
return;
}
remoteClient.SendInventoryItemCreateUpdate(itemCopy, 0);
if (im.binaryBucket != null && im.binaryBucket.Length >= 16)
folderID = new UUID(im.binaryBucket, 0);
}
catch
{
m_log.DebugFormat("[xmlGROUPS]: GroupNoticeInventoryAccepted failed to decode target folder");
return;
}
GroupNoticeInfo notice = m_groupData.GetGroupNotice(remoteAgentIDstr, noticeID);
if (notice == null)
{
if (m_debugEnabled)
m_log.DebugFormat(
"[GROUPS]: Could not find notice {0} for {1} on GroupNoticeInventoryAccepted.",
noticeID, remoteClient.AgentId);
return;
}
string tmp;
UUID giver = new UUID(im.toAgentID);
Util.ParseUniversalUserIdentifier(notice.noticeData.AttachmentOwnerID, out giver, out tmp, out tmp, out tmp, out tmp);
m_log.DebugFormat("[Groups]: Giving inventory from {0} to {1}", giver, remoteClient.AgentId);
string message = "Could not find group notice attached item";
InventoryItemBase itemCopy = scene.GiveInventoryItem(remoteClient.AgentId,
giver, notice.noticeData.AttachmentItemID, folderID, out message);
if (itemCopy == null)
{
remoteClient.SendAgentAlertMessage(message, false);
return;
}
remoteClient.SendInventoryItemCreateUpdate(itemCopy, 0);
}
else if (im.dialog == (byte)InstantMessageDialog.GroupNoticeInventoryDeclined)
{
if (!m_groupNoticesEnabled)
return;
UUID noticeID = new UUID(im.imSessionID);
if (m_debugEnabled)
m_log.DebugFormat("[GROUPS]: Accepted notice {0} for {1}", noticeID, remoteAgentIDstr);
if (noticeID == UUID.Zero)
return;
UUID remoteAgentID = remoteClient.AgentId;
GroupNoticeInfo notice = m_groupData.GetGroupNotice(remoteAgentIDstr, noticeID);
if (notice == null)
{
if (m_debugEnabled)
m_log.DebugFormat(
"[GROUPS]: Could not find notice {0} for {1} on GroupNoticeInventoryAccepted.",
noticeID, remoteClient.AgentId);
return;
}
string giver = notice.noticeData.AttachmentOwnerID;
UUID attachmentUUID = notice.noticeData.AttachmentItemID;
if (attachmentUUID == null ||
attachmentUUID == UUID.Zero ||
giver == null ||
giver == UUID.Zero.ToString()
)
return;
if (m_debugEnabled)
m_log.DebugFormat("[xmlGroups]: Deny inventory from {0} to {1}", giver, remoteAgentIDstr);
string message = String.Empty;
InventoryItemBase itemCopy = scene.InventoryService.GetItem(remoteAgentID, attachmentUUID);
if (itemCopy == null)
return;
InventoryFolderBase trash = scene.InventoryService.GetFolderForType(remoteAgentID, FolderType.Trash);
if (trash == null)
{
m_log.DebugFormat("[GROUPS]: failed to find trash folder for {0} ", remoteAgentID);
return;
}
if (itemCopy.Folder == trash.ID || remoteAgentIDstr == notice.noticeData.AttachmentOwnerID)
return;
itemCopy.Folder = trash.ID;
scene.InventoryService.MoveItems(itemCopy.Owner, new List<InventoryItemBase>() { itemCopy });
if (itemCopy == null)
{
remoteClient.SendAgentAlertMessage(message, false);
return;
}
remoteClient.SendInventoryItemCreateUpdate(itemCopy, 0);
}
// Interop, received special 210 code for ejecting a group member
// this only works within the comms servers domain, and won't work hypergrid
// TODO:FIXME: Use a presense server of some kind to find out where the
// TODO:FIXME: Use a presense server of some kind to find out where the
// client actually is, and try contacting that region directly to notify them,
// or provide the notification via xmlrpc update queue
if ((im.dialog == 210))
else if ((im.dialog == 210))
{
// This is sent from the region that the ejectee was ejected from
// if it's being delivered here, then the ejectee is here
@ -523,7 +649,7 @@ namespace OpenSim.Groups
UUID ejecteeID = new UUID(im.toAgentID);
im.imSessionID = UUID.Zero.Guid;
im.imSessionID = UUID.Zero.Guid;
im.dialog = (byte)InstantMessageDialog.MessageFromAgent;
OutgoingInstantMessage(im, ejecteeID);
@ -577,7 +703,7 @@ namespace OpenSim.Groups
{
return m_groupData.GetGroupRecord(UUID.Zero.ToString(), UUID.Zero, name);
}
public void ActivateGroup(IClientAPI remoteClient, UUID groupID)
{
if (m_debugEnabled) m_log.DebugFormat("[Groups]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
@ -585,7 +711,7 @@ namespace OpenSim.Groups
m_groupData.SetAgentActiveGroup(GetRequestingAgentIDStr(remoteClient), GetRequestingAgentIDStr(remoteClient), groupID);
// Changing active group changes title, active powers, all kinds of things
// anyone who is in any region that can see this client, should probably be
// anyone who is in any region that can see this client, should probably be
// updated with new group info. At a minimum, they should get ScenePresence
// updated with new title.
SendAgentGroupDataUpdate(remoteClient, true);
@ -620,10 +746,10 @@ namespace OpenSim.Groups
public List<GroupMembersData> GroupMembersRequest(IClientAPI remoteClient, UUID groupID)
{
if (m_debugEnabled)
if (m_debugEnabled)
m_log.DebugFormat(
"[Groups]: GroupMembersRequest called for {0} from client {1}", groupID, remoteClient.Name);
List<GroupMembersData> data = m_groupData.GetGroupMembers(GetRequestingAgentIDStr(remoteClient), groupID);
if (m_debugEnabled)
@ -706,7 +832,7 @@ namespace OpenSim.Groups
public GroupMembershipData GetMembershipData(UUID groupID, UUID agentID)
{
if (m_debugEnabled)
if (m_debugEnabled)
m_log.DebugFormat(
"[Groups]: {0} called with groupID={1}, agentID={2}",
System.Reflection.MethodBase.GetCurrentMethod().Name, groupID, agentID);
@ -756,7 +882,7 @@ namespace OpenSim.Groups
if (avatar != null)
{
if (avatar.UserLevel < m_levelGroupCreate)
if (avatar.GodController.UserLevel < m_levelGroupCreate)
{
remoteClient.SendCreateGroupReply(UUID.Zero, false, String.Format("Insufficient permissions to create a group. Requires level {0}", m_levelGroupCreate));
return UUID.Zero;
@ -776,18 +902,18 @@ namespace OpenSim.Groups
}
string reason = string.Empty;
UUID groupID = m_groupData.CreateGroup(remoteClient.AgentId, name, charter, showInList, insigniaID, membershipFee, openEnrollment,
UUID groupID = m_groupData.CreateGroup(remoteClient.AgentId, name, charter, showInList, insigniaID, membershipFee, openEnrollment,
allowPublish, maturePublish, remoteClient.AgentId, out reason);
if (groupID != UUID.Zero)
{
if (money != null)
money.ApplyCharge(remoteClient.AgentId, money.GroupCreationCharge, MoneyTransactionType.GroupCreate);
if (money != null && money.GroupCreationCharge > 0)
money.ApplyCharge(remoteClient.AgentId, money.GroupCreationCharge, MoneyTransactionType.GroupCreate, name);
remoteClient.SendCreateGroupReply(groupID, true, "Group created successfully");
// Update the founder with new group information.
SendAgentGroupDataUpdate(remoteClient, false);
SendAgentGroupDataUpdate(remoteClient, true);
}
else
remoteClient.SendCreateGroupReply(groupID, false, reason);
@ -823,7 +949,7 @@ namespace OpenSim.Groups
if (membership != null)
{
return membership.GroupTitle;
}
}
return string.Empty;
}
@ -839,7 +965,7 @@ namespace OpenSim.Groups
// TODO: Not sure what all is needed here, but if the active group role change is for the group
// the client currently has set active, then we need to do a scene presence update too
// if (m_groupData.GetAgentActiveMembership(GetRequestingAgentID(remoteClient)).GroupID == GroupID)
SendDataUpdate(remoteClient, true);
}
@ -899,7 +1025,7 @@ namespace OpenSim.Groups
case 1:
// Remove
m_groupData.RemoveAgentFromGroupRole(GetRequestingAgentIDStr(remoteClient), memberID.ToString(), groupID, roleID);
break;
default:
m_log.ErrorFormat("[Groups]: {0} does not understand changes == {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, changes);
@ -949,6 +1075,7 @@ namespace OpenSim.Groups
bucket = new byte[19 + name.Length];
bucket[0] = 1; // has attachment?
bucket[1] = info.noticeData.AttachmentType; // attachment type
info.GroupID.ToBytes(bucket, 2);
name.CopyTo(bucket, 18);
}
else
@ -959,7 +1086,6 @@ namespace OpenSim.Groups
bucket[18] = 0; // null terminated
}
info.GroupID.ToBytes(bucket, 2);
msg.binaryBucket = bucket;
}
else
@ -979,10 +1105,28 @@ namespace OpenSim.Groups
{
if (m_debugEnabled) m_log.DebugFormat("[Groups]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
GroupRecord groupRecord = GetGroupRecord(groupID);
IMoneyModule money = remoteClient.Scene.RequestModuleInterface<IMoneyModule>();
// Should check to see if there's an outstanding invitation
if (money != null && groupRecord.MembershipFee > 0)
{
// Does the agent have the funds to cover the group join fee?
if (!money.AmountCovered(remoteClient.AgentId, groupRecord.MembershipFee))
{
remoteClient.SendAlertMessage("Insufficient funds to join the group.");
remoteClient.SendJoinGroupReply(groupID, false);
return;
}
}
string reason = string.Empty;
// Should check to see if OpenEnrollment, or if there's an outstanding invitation
if (m_groupData.AddAgentToGroup(GetRequestingAgentIDStr(remoteClient), GetRequestingAgentIDStr(remoteClient), groupID, UUID.Zero, string.Empty, out reason))
{
if (money != null && groupRecord.MembershipFee > 0)
money.ApplyCharge(remoteClient.AgentId, groupRecord.MembershipFee, MoneyTransactionType.GroupJoin, groupRecord.GroupName);
remoteClient.SendJoinGroupReply(groupID, true);
@ -1072,7 +1216,7 @@ namespace OpenSim.Groups
// Send Message to Ejectee
GridInstantMessage msg = new GridInstantMessage();
// if local send a normal message
if(ejecteeClient != null)
{
@ -1190,7 +1334,7 @@ namespace OpenSim.Groups
public List<DirGroupsReplyData> FindGroups(IClientAPI remoteClient, string query)
{
return m_groupData.FindGroups(GetRequestingAgentIDStr(remoteClient), query);
return m_groupData.FindGroups(remoteClient.AgentId.ToString(), query);
}
#endregion
@ -1324,7 +1468,7 @@ namespace OpenSim.Groups
membershipArray = membershipData.ToArray();
}
}
if (m_debugEnabled)
{
m_log.InfoFormat("[Groups]: Get group membership information for {0} requested by {1}", dataForAgentID, requestingClient.AgentId);

View File

@ -103,7 +103,7 @@ namespace OpenSim.Groups
if (!m_Enabled)
return;
m_log.DebugFormat("[Groups]: Registering {0} with {1}", this.Name, scene.RegionInfo.RegionName);
m_log.DebugFormat("[Groups]: Registering {0} with {1}", this.Name, scene.RegionInfo.RegionName);
scene.RegisterModuleInterface<IGroupsServicesConnector>(this);
m_Scenes.Add(scene);
@ -135,7 +135,7 @@ namespace OpenSim.Groups
{
m_LocalGroupsConnector = new GroupsServiceLocalConnectorModule(m_Config, m_UserManagement);
// Also, if local, create the endpoint for the HGGroupsService
new HGGroupsServiceRobustConnector(m_Config, MainServer.Instance, string.Empty,
new HGGroupsServiceRobustConnector(m_Config, MainServer.Instance, string.Empty,
scene.RequestModuleInterface<IOfflineIMService>(), scene.RequestModuleInterface<IUserAccountService>());
}
@ -170,7 +170,7 @@ namespace OpenSim.Groups
if (sp is ScenePresence && ((ScenePresence)sp).PresenceType != PresenceType.Npc)
{
AgentCircuitData aCircuit = ((ScenePresence)sp).Scene.AuthenticateHandler.GetAgentCircuitData(client.AgentId);
if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0 &&
if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0 &&
m_OfflineIM != null && m_Messaging != null)
{
List<GridInstantMessage> ims = m_OfflineIM.GetMessages(aCircuit.AgentID);
@ -184,12 +184,12 @@ namespace OpenSim.Groups
#region IGroupsServicesConnector
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
bool allowPublish, bool maturePublish, UUID founderID, out string reason)
{
reason = string.Empty;
if (m_UserManagement.IsLocalGridUser(RequestingAgentID))
return m_LocalGroupsConnector.CreateGroup(RequestingAgentID, name, charter, showInList, insigniaID,
return m_LocalGroupsConnector.CreateGroup(RequestingAgentID, name, charter, showInList, insigniaID,
membershipFee, openEnrollment, allowPublish, maturePublish, founderID, out reason);
else
{
@ -198,14 +198,14 @@ namespace OpenSim.Groups
}
}
public bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
public bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
bool openEnrollment, bool allowPublish, bool maturePublish, out string reason)
{
reason = string.Empty;
string url = string.Empty;
string name = string.Empty;
if (IsLocal(groupID, out url, out name))
return m_LocalGroupsConnector.UpdateGroup(AgentUUI(RequestingAgentID), groupID, charter, showInList, insigniaID, membershipFee,
return m_LocalGroupsConnector.UpdateGroup(AgentUUI(RequestingAgentID), groupID, charter, showInList, insigniaID, membershipFee,
openEnrollment, allowPublish, maturePublish, out reason);
else
{
@ -246,9 +246,9 @@ namespace OpenSim.Groups
return null;
}
public List<DirGroupsReplyData> FindGroups(string RequestingAgentID, string search)
public List<DirGroupsReplyData> FindGroups(string RequestingAgentIDstr, string search)
{
return m_LocalGroupsConnector.FindGroups(AgentUUI(RequestingAgentID), search);
return m_LocalGroupsConnector.FindGroups(RequestingAgentIDstr, search);
}
public List<GroupMembersData> GetGroupMembers(string RequestingAgentID, UUID GroupID)
@ -374,7 +374,7 @@ namespace OpenSim.Groups
}
}
return new List<GroupRoleMembersData>();
}
@ -605,14 +605,8 @@ namespace OpenSim.Groups
private string AgentUUI(string AgentIDStr)
{
UUID AgentID = UUID.Zero;
try
{
AgentID = new UUID(AgentIDStr);
}
catch (FormatException)
{
return AgentID.ToString();
}
if (!UUID.TryParse(AgentIDStr, out AgentID) || AgentID == UUID.Zero)
return UUID.Zero.ToString();
if (m_UserManagement.IsLocalGridUser(AgentID))
return AgentID.ToString();
@ -626,7 +620,7 @@ namespace OpenSim.Groups
}
if (agent != null)
return Util.ProduceUserUniversalIdentifier(agent);
// we don't know anything about this foreign user
// try asking the user management module, which may know more
return m_UserManagement.GetUserUUI(AgentID);
@ -636,14 +630,8 @@ namespace OpenSim.Groups
private string AgentUUIForOutside(string AgentIDStr)
{
UUID AgentID = UUID.Zero;
try
{
AgentID = new UUID(AgentIDStr);
}
catch (FormatException)
{
return AgentID.ToString();
}
if (!UUID.TryParse(AgentIDStr, out AgentID) || AgentID == UUID.Zero)
return UUID.Zero.ToString();
AgentCircuitData agent = null;
foreach (Scene scene in m_Scenes)
@ -664,7 +652,7 @@ namespace OpenSim.Groups
string url = string.Empty, first = string.Empty, last = string.Empty, tmp = string.Empty;
if (Util.ParseUniversalUserIdentifier(uID, out userID, out url, out first, out last, out tmp))
m_UserManagement.AddUser(userID, first, last, url);
return userID;
}

View File

@ -64,8 +64,8 @@ namespace OpenSim.Groups
m_log.DebugFormat("[Groups.RobustHGConnector]: Starting with config name {0}", m_ConfigName);
string homeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI",
new string[] { "Startup", "Hypergrid", m_ConfigName}, string.Empty);
string homeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI",
new string[] { "Startup", "Hypergrid", m_ConfigName}, string.Empty);
if (homeURI == string.Empty)
throw new Exception(String.Format("[Groups.RobustHGConnector]: please provide the HomeURI [Startup] or in section {0}", m_ConfigName));
@ -115,9 +115,10 @@ namespace OpenSim.Groups
protected override byte[] ProcessRequest(string path, Stream requestData,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
StreamReader sr = new StreamReader(requestData);
string body = sr.ReadToEnd();
sr.Close();
string body;
using(StreamReader sr = new StreamReader(requestData))
body = sr.ReadToEnd();
body = body.Trim();
//m_log.DebugFormat("[XXX]: query String: {0}", body);

View File

@ -34,12 +34,12 @@ namespace OpenSim.Groups
{
public interface IGroupsServicesConnector
{
UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee,
UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee,
bool openEnrollment, bool allowPublish, bool maturePublish, UUID founderID, out string reason);
bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
bool openEnrollment, bool allowPublish, bool maturePublish, out string reason);
ExtendedGroupRecord GetGroupRecord(string RequestingAgentID, UUID GroupID, string GroupName);
List<DirGroupsReplyData> FindGroups(string RequestingAgentID, string search);
List<DirGroupsReplyData> FindGroups(string RequestingAgentIDstr, string search);
List<GroupMembersData> GetGroupMembers(string RequestingAgentID, UUID GroupID);
bool AddGroupRole(string RequestingAgentID, UUID groupID, UUID roleID, string name, string description, string title, ulong powers, out string reason);
@ -75,7 +75,7 @@ namespace OpenSim.Groups
/// If the user is a member of the group then the data structure is returned. If not, then null is returned.
/// </returns>
ExtendedGroupMembershipData GetAgentGroupMembership(string RequestingAgentID, string AgentID, UUID GroupID);
/// <summary>
/// Get information about the groups to which a user belongs.
/// </summary>
@ -87,7 +87,7 @@ namespace OpenSim.Groups
/// </returns>
List<GroupMembershipData> GetAgentGroupMemberships(string RequestingAgentID, string AgentID);
bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
bool hasAttachment, byte attType, string attName, UUID attItemID, string attOwnerID);
GroupNoticeInfo GetGroupNotice(string RequestingAgentID, UUID noticeID);
List<ExtendedGroupNoticeData> GetGroupNotices(string RequestingAgentID, UUID GroupID);

View File

@ -108,7 +108,7 @@ namespace OpenSim.Groups
if (!m_Enabled)
return;
m_log.DebugFormat("[Groups]: Registering {0} with {1}", this.Name, scene.RegionInfo.RegionName);
m_log.DebugFormat("[Groups]: Registering {0} with {1}", this.Name, scene.RegionInfo.RegionName);
scene.RegisterModuleInterface<IGroupsServicesConnector>(this);
m_Scenes.Add(scene);
}
@ -146,16 +146,16 @@ namespace OpenSim.Groups
#region IGroupsServicesConnector
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
bool allowPublish, bool maturePublish, UUID founderID, out string reason)
{
m_log.DebugFormat("[Groups]: Creating group {0}", name);
reason = string.Empty;
return m_GroupsService.CreateGroup(RequestingAgentID.ToString(), name, charter, showInList, insigniaID,
return m_GroupsService.CreateGroup(RequestingAgentID.ToString(), name, charter, showInList, insigniaID,
membershipFee, openEnrollment, allowPublish, maturePublish, founderID, out reason);
}
public bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
public bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
bool openEnrollment, bool allowPublish, bool maturePublish, out string reason)
{
reason = string.Empty;
@ -173,9 +173,9 @@ namespace OpenSim.Groups
return null;
}
public List<DirGroupsReplyData> FindGroups(string RequestingAgentID, string search)
public List<DirGroupsReplyData> FindGroups(string RequestingAgentIDstr, string search)
{
return m_GroupsService.FindGroups(RequestingAgentID, search);
return m_GroupsService.FindGroups(RequestingAgentIDstr, search);
}
public List<GroupMembersData> GetGroupMembers(string RequestingAgentID, UUID GroupID)
@ -296,7 +296,7 @@ namespace OpenSim.Groups
public bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
bool hasAttachment, byte attType, string attName, UUID attItemID, string attOwnerID)
{
return m_GroupsService.AddGroupNotice(RequestingAgentID, groupID, noticeID, fromName, subject, message,
return m_GroupsService.AddGroupNotice(RequestingAgentID, groupID, noticeID, fromName, subject, message,
hasAttachment, attType, attName, attItemID, attOwnerID);
}

View File

@ -3,7 +3,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Mono.Addins;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Addons.Groups")]
@ -15,8 +15,8 @@ using Mono.Addins;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -26,7 +26,7 @@ using Mono.Addins;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -41,7 +41,7 @@ using Nini.Config;
namespace OpenSim.Groups
{
public class GroupsServiceRemoteConnector
public class GroupsServiceRemoteConnector
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -71,7 +71,7 @@ namespace OpenSim.Groups
}
///
m_log.DebugFormat("[Groups.RemoteConnector]: Groups server at {0}, authentication {1}",
m_log.DebugFormat("[Groups.RemoteConnector]: Groups server at {0}, authentication {1}",
m_ServerURI, (m_Auth == null ? "None" : m_Auth.GetType().ToString()));
}
@ -153,7 +153,7 @@ namespace OpenSim.Groups
return GroupsDataUtils.GroupRecord((Dictionary<string, object>)ret["RESULT"]);
}
public List<DirGroupsReplyData> FindGroups(string RequestingAgentID, string query)
public List<DirGroupsReplyData> FindGroups(string RequestingAgentIDstr, string query)
{
List<DirGroupsReplyData> hits = new List<DirGroupsReplyData>();
if (string.IsNullOrEmpty(query))
@ -161,7 +161,7 @@ namespace OpenSim.Groups
Dictionary<string, object> sendData = new Dictionary<string, object>();
sendData["Query"] = query;
sendData["RequestingAgentID"] = RequestingAgentID;
sendData["RequestingAgentID"] = RequestingAgentIDstr;
Dictionary<string, object> ret = MakeRequest("FINDGROUPS", sendData);

View File

@ -113,7 +113,7 @@ namespace OpenSim.Groups
if (!m_Enabled)
return;
m_log.DebugFormat("[Groups.RemoteConnector]: Registering {0} with {1}", this.Name, scene.RegionInfo.RegionName);
m_log.DebugFormat("[Groups.RemoteConnector]: Registering {0} with {1}", this.Name, scene.RegionInfo.RegionName);
scene.RegisterModuleInterface<IGroupsServicesConnector>(this);
m_Scenes.Add(scene);
}
@ -151,7 +151,7 @@ namespace OpenSim.Groups
#region IGroupsServicesConnector
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
bool allowPublish, bool maturePublish, UUID founderID, out string reason)
{
m_log.DebugFormat("[Groups.RemoteConnector]: Creating group {0}", name);
@ -167,7 +167,7 @@ namespace OpenSim.Groups
return groupID;
}
public bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
public bool UpdateGroup(string RequestingAgentID, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee,
bool openEnrollment, bool allowPublish, bool maturePublish, out string reason)
{
string r = string.Empty;
@ -186,16 +186,16 @@ namespace OpenSim.Groups
if (GroupID == UUID.Zero && (GroupName == null || GroupName != null && GroupName == string.Empty))
return null;
return m_CacheWrapper.GetGroupRecord(RequestingAgentID,GroupID,GroupName, delegate
{
return m_GroupsService.GetGroupRecord(RequestingAgentID, GroupID, GroupName);
return m_CacheWrapper.GetGroupRecord(RequestingAgentID,GroupID,GroupName, delegate
{
return m_GroupsService.GetGroupRecord(RequestingAgentID, GroupID, GroupName);
});
}
public List<DirGroupsReplyData> FindGroups(string RequestingAgentID, string search)
public List<DirGroupsReplyData> FindGroups(string RequestingAgentIDstr, string search)
{
// TODO!
return m_GroupsService.FindGroups(RequestingAgentID, search);
return m_GroupsService.FindGroups(RequestingAgentIDstr, search);
}
public bool AddAgentToGroup(string RequestingAgentID, string AgentID, UUID GroupID, UUID RoleID, string token, out string reason)
@ -362,7 +362,7 @@ namespace OpenSim.Groups
m_GroupsService.RemoveAgentToGroupInvite(RequestingAgentID, inviteID);
}
public bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
public bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
bool hasAttachment, byte attType, string attName, UUID attItemID, string attOwnerID)
{
GroupNoticeInfo notice = new GroupNoticeInfo();

View File

@ -91,9 +91,10 @@ namespace OpenSim.Groups
protected override byte[] ProcessRequest(string path, Stream requestData,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
StreamReader sr = new StreamReader(requestData);
string body = sr.ReadToEnd();
sr.Close();
string body;
using(StreamReader sr = new StreamReader(requestData))
body = sr.ReadToEnd();
body = body.Trim();
//m_log.DebugFormat("[XXX]: query String: {0}", body);
@ -286,7 +287,7 @@ namespace OpenSim.Groups
string requestingAgentID = request["RequestingAgentID"].ToString();
if (!m_GroupsService.RemoveAgentFromGroup(requestingAgentID, agentID, groupID))
NullResult(result, string.Format("Insufficient permissions.", agentID));
NullResult(result, string.Format("Insufficient permissions. {0}", agentID));
else
result["RESULT"] = "true";
}
@ -393,7 +394,7 @@ namespace OpenSim.Groups
if (!request.ContainsKey("RequestingAgentID") || !request.ContainsKey("GroupID") || !request.ContainsKey("RoleID") ||
!request.ContainsKey("Name") || !request.ContainsKey("Description") || !request.ContainsKey("Title") ||
!request.ContainsKey("Powers") || !request.ContainsKey("OP"))
!request.ContainsKey("Powers") || !request.ContainsKey("OP"))
NullResult(result, "Bad network data");
else
@ -519,11 +520,11 @@ namespace OpenSim.Groups
bool success = false;
if (op == "ADD")
success = m_GroupsService.AddAgentToGroupRole(request["RequestingAgentID"].ToString(), request["AgentID"].ToString(),
success = m_GroupsService.AddAgentToGroupRole(request["RequestingAgentID"].ToString(), request["AgentID"].ToString(),
new UUID(request["GroupID"].ToString()), new UUID(request["RoleID"].ToString()));
else if (op == "DELETE")
success = m_GroupsService.RemoveAgentFromGroupRole(request["RequestingAgentID"].ToString(), request["AgentID"].ToString(),
success = m_GroupsService.RemoveAgentFromGroupRole(request["RequestingAgentID"].ToString(), request["AgentID"].ToString(),
new UUID(request["GroupID"].ToString()), new UUID(request["RoleID"].ToString()));
result["RESULT"] = success.ToString();
@ -647,8 +648,8 @@ namespace OpenSim.Groups
string op = request["OP"].ToString();
if (op == "ADD" && request.ContainsKey("GroupID") && request.ContainsKey("RoleID") && request.ContainsKey("AgentID"))
{
bool success = m_GroupsService.AddAgentToGroupInvite(request["RequestingAgentID"].ToString(),
{
bool success = m_GroupsService.AddAgentToGroupInvite(request["RequestingAgentID"].ToString(),
new UUID(request["InviteID"].ToString()), new UUID(request["GroupID"].ToString()),
new UUID(request["RoleID"].ToString()), request["AgentID"].ToString());
@ -664,7 +665,7 @@ namespace OpenSim.Groups
}
else if (op == "GET")
{
GroupInviteInfo invite = m_GroupsService.GetAgentToGroupInvite(request["RequestingAgentID"].ToString(),
GroupInviteInfo invite = m_GroupsService.GetAgentToGroupInvite(request["RequestingAgentID"].ToString(),
new UUID(request["InviteID"].ToString()));
if (invite != null)

View File

@ -43,60 +43,63 @@ namespace OpenSim.Groups
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public const GroupPowers DefaultEveryonePowers = GroupPowers.AllowSetHome |
GroupPowers.Accountable |
GroupPowers.JoinChat |
GroupPowers.AllowVoiceChat |
GroupPowers.ReceiveNotices |
GroupPowers.StartProposal |
GroupPowers.VoteOnProposal;
public const GroupPowers DefaultEveryonePowers =
GroupPowers.AllowSetHome |
GroupPowers.Accountable |
GroupPowers.JoinChat |
GroupPowers.AllowVoiceChat |
GroupPowers.ReceiveNotices |
GroupPowers.StartProposal |
GroupPowers.VoteOnProposal;
public const GroupPowers OwnerPowers = GroupPowers.Accountable |
GroupPowers.AllowEditLand |
GroupPowers.AllowFly |
GroupPowers.AllowLandmark |
GroupPowers.AllowRez |
GroupPowers.AllowSetHome |
GroupPowers.AllowVoiceChat |
GroupPowers.AssignMember |
GroupPowers.AssignMemberLimited |
GroupPowers.ChangeActions |
GroupPowers.ChangeIdentity |
GroupPowers.ChangeMedia |
GroupPowers.ChangeOptions |
GroupPowers.CreateRole |
GroupPowers.DeedObject |
GroupPowers.DeleteRole |
GroupPowers.Eject |
GroupPowers.FindPlaces |
GroupPowers.HostEvent |
GroupPowers.Invite |
GroupPowers.JoinChat |
GroupPowers.LandChangeIdentity |
GroupPowers.LandDeed |
GroupPowers.LandDivideJoin |
GroupPowers.LandEdit |
GroupPowers.LandEjectAndFreeze |
GroupPowers.LandGardening |
GroupPowers.LandManageAllowed |
GroupPowers.LandManageBanned |
GroupPowers.LandManagePasses |
GroupPowers.LandOptions |
GroupPowers.LandRelease |
GroupPowers.LandSetSale |
GroupPowers.ModerateChat |
GroupPowers.ObjectManipulate |
GroupPowers.ObjectSetForSale |
GroupPowers.ReceiveNotices |
GroupPowers.RemoveMember |
GroupPowers.ReturnGroupOwned |
GroupPowers.ReturnGroupSet |
GroupPowers.ReturnNonGroup |
GroupPowers.RoleProperties |
GroupPowers.SendNotices |
GroupPowers.SetLandingPoint |
GroupPowers.StartProposal |
GroupPowers.VoteOnProposal;
public const GroupPowers OfficersPowers = DefaultEveryonePowers |
GroupPowers.AllowFly |
GroupPowers.AllowLandmark |
GroupPowers.AllowRez |
GroupPowers.AssignMemberLimited |
GroupPowers.ChangeIdentity |
GroupPowers.ChangeMedia |
GroupPowers.ChangeOptions |
GroupPowers.DeedObject |
GroupPowers.Eject |
GroupPowers.FindPlaces |
GroupPowers.Invite |
GroupPowers.LandChangeIdentity |
GroupPowers.LandDeed |
GroupPowers.LandDivideJoin |
GroupPowers.LandEdit |
GroupPowers.AllowEnvironment |
GroupPowers.LandEjectAndFreeze |
GroupPowers.LandGardening |
GroupPowers.LandManageAllowed |
GroupPowers.LandManageBanned |
GroupPowers.LandManagePasses |
GroupPowers.LandOptions |
GroupPowers.LandRelease |
GroupPowers.LandSetSale |
GroupPowers.MemberVisible |
GroupPowers.ModerateChat |
GroupPowers.ObjectManipulate |
GroupPowers.ObjectSetForSale |
GroupPowers.ReturnGroupOwned |
GroupPowers.ReturnGroupSet |
GroupPowers.ReturnNonGroup |
GroupPowers.RoleProperties |
GroupPowers.SendNotices |
GroupPowers.SetLandingPoint;
public const GroupPowers OwnerPowers = OfficersPowers |
GroupPowers.Accountable |
GroupPowers.AllowEditLand |
GroupPowers.AssignMember |
GroupPowers.ChangeActions |
GroupPowers.CreateRole |
GroupPowers.DeleteRole |
GroupPowers.ExperienceAdmin |
GroupPowers.ExperienceCreator |
GroupPowers.GroupBanAccess |
GroupPowers.HostEvent |
GroupPowers.RemoveMember;
#region Daily Cleanup
@ -126,7 +129,7 @@ namespace OpenSim.Groups
#endregion
public UUID CreateGroup(string RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
public UUID CreateGroup(string RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
bool allowPublish, bool maturePublish, UUID founderID, out string reason)
{
reason = string.Empty;
@ -151,20 +154,25 @@ namespace OpenSim.Groups
data.Data["ShowInList"] = showInList ? "1" : "0";
data.Data["AllowPublish"] = allowPublish ? "1" : "0";
data.Data["MaturePublish"] = maturePublish ? "1" : "0";
UUID roleID = UUID.Random();
data.Data["OwnerRoleID"] = roleID.ToString();
UUID ownerRoleID = UUID.Random();
data.Data["OwnerRoleID"] = ownerRoleID.ToString();
if (!m_Database.StoreGroup(data))
return UUID.Zero;
// Create Everyone role
_AddOrUpdateGroupRole(RequestingAgentID, data.GroupID, UUID.Zero, "Everyone", "Everyone in the group", "Member of " + name, (ulong)DefaultEveryonePowers, true);
_AddOrUpdateGroupRole(RequestingAgentID, data.GroupID, UUID.Zero, "Everyone", "Everyone in the group is in the everyone role.", "Member of " + name, (ulong)DefaultEveryonePowers, true);
// Create Officers role
UUID officersRoleID = UUID.Random();
_AddOrUpdateGroupRole(RequestingAgentID, data.GroupID, officersRoleID, "Officers", "The officers of the group, with more powers than regular members.", "Officer of " + name, (ulong)OfficersPowers, true);
// Create Owner role
_AddOrUpdateGroupRole(RequestingAgentID, data.GroupID, roleID, "Owners", "Owners of the group", "Owner of " + name, (ulong)OwnerPowers, true);
_AddOrUpdateGroupRole(RequestingAgentID, data.GroupID, ownerRoleID, "Owners", "Owners of the group", "Owner of " + name, (ulong)OwnerPowers, true);
// Add founder to group
_AddAgentToGroup(RequestingAgentID, founderID.ToString(), data.GroupID, roleID);
_AddAgentToGroup(RequestingAgentID, founderID.ToString(), data.GroupID, ownerRoleID);
_AddAgentToGroup(RequestingAgentID, founderID.ToString(), data.GroupID, officersRoleID);
return data.GroupID;
}
@ -223,15 +231,22 @@ namespace OpenSim.Groups
if (d.Data.ContainsKey("Location") && d.Data["Location"] != string.Empty)
continue;
int nmembers = m_Database.MemberCount(d.GroupID);
if(nmembers == 0)
continue;
DirGroupsReplyData g = new DirGroupsReplyData();
g.groupID = d.GroupID;
if (d.Data.ContainsKey("Name"))
g.groupName = d.Data["Name"];
else
{
m_log.DebugFormat("[Groups]: Key Name not found");
continue;
}
g.members = m_Database.MemberCount(d.GroupID);
g.groupID = d.GroupID;
g.members = nmembers;
groups.Add(g);
}
@ -264,7 +279,7 @@ namespace OpenSim.Groups
if (ownerRole != null)
ownerRoleID = ownerRole.RoleID;
// Check visibility?
// Check visibility?
// When we don't want to check visibility, we pass it "all" as the requestingAgentID
bool checkVisibility = !RequestingAgentID.Equals(UUID.Zero.ToString());
@ -307,20 +322,20 @@ namespace OpenSim.Groups
m.Contribution = Int32.Parse(d.Data["Contribution"]);
m.ListInProfile = d.Data["ListInProfile"] == "1" ? true : false;
GridUserData gud = m_GridUserService.Get(d.PrincipalID);
if (gud != null)
{
if (bool.Parse(gud.Data["Online"]))
{
m.OnlineStatus = @"Online";
}
else
{
int unixtime = int.Parse(gud.Data["Login"]);
// The viewer is very picky about how these strings are formed. Eg. it will crash on malformed dates!
m.OnlineStatus = (unixtime == 0) ? @"unknown" : Util.ToDateTime(unixtime).ToString("MM/dd/yyyy");
}
}
GridUserData gud = m_GridUserService.Get(d.PrincipalID);
if (gud != null)
{
if (bool.Parse(gud.Data["Online"]))
{
m.OnlineStatus = @"Online";
}
else
{
int unixtime = int.Parse(gud.Data["Login"]);
// The viewer is very picky about how these strings are formed. Eg. it will crash on malformed dates!
m.OnlineStatus = (unixtime == 0) ? @"unknown" : Util.ToDateTime(unixtime).ToString("MM/dd/yyyy");
}
}
// Is this person an owner of the group?
m.IsOwner = (rolemembershipsList.Find(r => r.RoleID == ownerRoleID) != null) ? true : false;
@ -485,7 +500,7 @@ namespace OpenSim.Groups
// check permissions
bool limited = HasPower(RequestingAgentID, GroupID, GroupPowers.AssignMemberLimited);
bool unlimited = HasPower(RequestingAgentID, GroupID, GroupPowers.AssignMember) | IsOwner(RequestingAgentID, GroupID);
bool unlimited = HasPower(RequestingAgentID, GroupID, GroupPowers.AssignMember) || IsOwner(RequestingAgentID, GroupID);
if (!limited && !unlimited)
{
m_log.DebugFormat("[Groups]: ({0}) Attempt at assigning {1} to role {2} denied because of lack of permission", RequestingAgentID, AgentID, RoleID);
@ -496,7 +511,7 @@ namespace OpenSim.Groups
if (!unlimited && limited)
{
// check whether person's has this role
RoleMembershipData rolemembership = m_Database.RetrieveRoleMember(GroupID, RoleID, AgentID);
RoleMembershipData rolemembership = m_Database.RetrieveRoleMember(GroupID, RoleID, RequestingAgentID);
if (rolemembership == null)
{
m_log.DebugFormat("[Groups]: ({0}) Attempt at assigning {1} to role {2} denied because of limited permission", RequestingAgentID, AgentID, RoleID);
@ -516,13 +531,26 @@ namespace OpenSim.Groups
return false;
// check permissions
bool limited = HasPower(RequestingAgentID, GroupID, GroupPowers.AssignMemberLimited);
bool unlimited = HasPower(RequestingAgentID, GroupID, GroupPowers.AssignMember) || IsOwner(RequestingAgentID, GroupID);
if (!unlimited)
if (!limited && !unlimited)
{
m_log.DebugFormat("[Groups]: ({0}) Attempt at removing {1} from role {2} denied because of lack of permission", RequestingAgentID, AgentID, RoleID);
return false;
}
// AssignMemberLimited means that the person can assign another person to the same roles that she has in the group
if (!unlimited && limited)
{
// check whether person's has this role
RoleMembershipData rolemembership = m_Database.RetrieveRoleMember(GroupID, RoleID, RequestingAgentID);
if (rolemembership == null)
{
m_log.DebugFormat("[Groups]: ({0}) Attempt at removing {1} from role {2} denied because of limited permission", RequestingAgentID, AgentID, RoleID);
return false;
}
}
RoleMembershipData rolemember = m_Database.RetrieveRoleMember(GroupID, RoleID, AgentID);
if (rolemember == null)
@ -540,8 +568,8 @@ namespace OpenSim.Groups
{
newRoleID = r.RoleID;
break;
}
}
}
}
MembershipData member = m_Database.RetrieveMember(GroupID, AgentID);
if (member != null)
@ -699,7 +727,7 @@ namespace OpenSim.Groups
m_Database.StoreMember(membership);
}
public bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
public bool AddGroupNotice(string RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message,
bool hasAttachment, byte attType, string attName, UUID attItemID, string attOwnerID)
{
// Check perms
@ -812,7 +840,7 @@ namespace OpenSim.Groups
if (RoleID != UUID.Zero)
_AddAgentToGroupRole(RequestingAgentID, AgentID, GroupID, RoleID);
// Make thit this active group
// Make this the active group
PrincipalData pdata = new PrincipalData();
pdata.PrincipalID = AgentID;
pdata.ActiveGroupID = GroupID;
@ -830,7 +858,7 @@ namespace OpenSim.Groups
return false;
}
if (!add && data == null) // it deosn't exist, can't update
if (!add && data == null) // it doesn't exist, can't update
{
m_log.DebugFormat("[Groups]: Group {0} doesn't exist. Can't update it", groupID);
return false;

View File

@ -35,67 +35,67 @@ using OpenSim.Services.Base;
namespace OpenSim.Groups
{
public class GroupsServiceBase : ServiceBase
{
protected IGroupsData m_Database = null;
protected IGridUserData m_GridUserService = null;
public class GroupsServiceBase : ServiceBase
{
protected IGroupsData m_Database = null;
protected IGridUserData m_GridUserService = null;
public GroupsServiceBase(IConfigSource config, string cName)
: base(config)
{
string dllName = String.Empty;
string connString = String.Empty;
string realm = "os_groups";
string usersRealm = "GridUser";
string configName = (cName == string.Empty) ? "Groups" : cName;
public GroupsServiceBase(IConfigSource config, string cName)
: base(config)
{
string dllName = String.Empty;
string connString = String.Empty;
string realm = "os_groups";
string usersRealm = "GridUser";
string configName = (cName == string.Empty) ? "Groups" : cName;
//
// Try reading the [DatabaseService] section, if it exists
//
IConfig dbConfig = config.Configs["DatabaseService"];
if (dbConfig != null)
{
if (dllName == String.Empty)
dllName = dbConfig.GetString("StorageProvider", String.Empty);
if (connString == String.Empty)
connString = dbConfig.GetString("ConnectionString", String.Empty);
}
//
// Try reading the [DatabaseService] section, if it exists
//
IConfig dbConfig = config.Configs["DatabaseService"];
if (dbConfig != null)
{
if (dllName == String.Empty)
dllName = dbConfig.GetString("StorageProvider", String.Empty);
if (connString == String.Empty)
connString = dbConfig.GetString("ConnectionString", String.Empty);
}
//
// [Groups] section overrides [DatabaseService], if it exists
//
IConfig groupsConfig = config.Configs[configName];
if (groupsConfig != null)
{
dllName = groupsConfig.GetString("StorageProvider", dllName);
connString = groupsConfig.GetString("ConnectionString", connString);
realm = groupsConfig.GetString("Realm", realm);
}
//
// [Groups] section overrides [DatabaseService], if it exists
//
IConfig groupsConfig = config.Configs[configName];
if (groupsConfig != null)
{
dllName = groupsConfig.GetString("StorageProvider", dllName);
connString = groupsConfig.GetString("ConnectionString", connString);
realm = groupsConfig.GetString("Realm", realm);
}
//
// We tried, but this doesn't exist. We can't proceed.
//
if (dllName.Equals(String.Empty))
throw new Exception("No StorageProvider configured");
//
// We tried, but this doesn't exist. We can't proceed.
//
if (dllName.Equals(String.Empty))
throw new Exception("No StorageProvider configured");
m_Database = LoadPlugin<IGroupsData>(dllName, new Object[] { connString, realm });
if (m_Database == null)
throw new Exception("Could not find a storage interface in the given module " + dllName);
m_Database = LoadPlugin<IGroupsData>(dllName, new Object[] { connString, realm });
if (m_Database == null)
throw new Exception("Could not find a storage interface in the given module " + dllName);
//
// [GridUserService] section overrides [DatabaseService], if it exists
//
IConfig usersConfig = config.Configs["GridUserService"];
if (usersConfig != null)
{
dllName = usersConfig.GetString("StorageProvider", dllName);
connString = usersConfig.GetString("ConnectionString", connString);
//
// [GridUserService] section overrides [DatabaseService], if it exists
//
IConfig usersConfig = config.Configs["GridUserService"];
if (usersConfig != null)
{
dllName = usersConfig.GetString("StorageProvider", dllName);
connString = usersConfig.GetString("ConnectionString", connString);
usersRealm = usersConfig.GetString("Realm", usersRealm);
}
}
m_GridUserService = LoadPlugin<IGridUserData>(dllName, new Object[] { connString, usersRealm });
if (m_GridUserService == null)
throw new Exception("Could not find a storage inferface for the given users module " + dllName);
}
}
m_GridUserService = LoadPlugin<IGridUserData>(dllName, new Object[] { connString, usersRealm });
if (m_GridUserService == null)
throw new Exception("Could not find a storage inferface for the given users module " + dllName);
}
}
}

View File

@ -76,7 +76,7 @@ namespace OpenSim.Groups
// Check if it already exists
GroupData grec = m_Database.RetrieveGroup(groupID);
if (grec == null ||
if (grec == null ||
(grec != null && grec.Data["Location"] != string.Empty && grec.Data["Location"].ToLower() != serviceLocation.ToLower()))
{
// Create the group

View File

@ -114,7 +114,6 @@ namespace OpenSim.OfflineIM
scene.ForEachClient(delegate(IClientAPI client)
{
client.OnRetrieveInstantMessages -= RetrieveInstantMessages;
client.OnMuteListRequest -= OnMuteListRequest;
});
}
@ -162,7 +161,6 @@ namespace OpenSim.OfflineIM
private void OnNewClient(IClientAPI client)
{
client.OnRetrieveInstantMessages += RetrieveInstantMessages;
client.OnMuteListRequest += OnMuteListRequest;
}
private void RetrieveInstantMessages(IClientAPI client)
@ -194,20 +192,6 @@ namespace OpenSim.OfflineIM
}
}
// Apparently this is needed in order for the viewer to request the IMs.
private void OnMuteListRequest(IClientAPI client, uint crc)
{
m_log.DebugFormat("[OfflineIM.V2] Got mute list request for crc {0}", crc);
string filename = "mutes" + client.AgentId.ToString();
IXfer xfer = client.Scene.RequestModuleInterface<IXfer>();
if (xfer != null)
{
xfer.AddNewFile(filename, new Byte[0]);
client.SendMuteListUpdate(filename);
}
}
private void UndeliveredMessage(GridInstantMessage im)
{
if (im.dialog != (byte)InstantMessageDialog.MessageFromObject &&

View File

@ -3,7 +3,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Mono.Addins;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Addons.OfflineIM")]
@ -15,8 +15,8 @@ using Mono.Addins;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -26,7 +26,7 @@ using Mono.Addins;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -77,7 +77,7 @@ namespace OpenSim.OfflineIM
break;
}
///
m_log.DebugFormat("[OfflineIM.V2.RemoteConnector]: Offline IM server at {0} with auth {1}",
m_log.DebugFormat("[OfflineIM.V2.RemoteConnector]: Offline IM server at {0} with auth {1}",
m_ServerURI, (m_Auth == null ? "None" : m_Auth.GetType().ToString()));
}
@ -140,7 +140,7 @@ namespace OpenSim.OfflineIM
{
Dictionary<string, object> sendData = new Dictionary<string, object>();
sendData["UserID"] = userID;
MakeRequest("DELETE", sendData);
}

View File

@ -90,7 +90,7 @@ namespace OpenSim.OfflineIM
public bool StoreMessage(GridInstantMessage im, out string reason)
{
reason = string.Empty;
// Check limits
UUID principalID = new UUID(im.toAgentID);
long count = m_Database.GetCount("PrincipalID", principalID.ToString());
@ -110,9 +110,8 @@ namespace OpenSim.OfflineIM
{
m_serializer.Serialize(writer, im);
writer.Flush();
imXml = Util.UTF8NoBomEncoding.GetString(mstream.ToArray());
}
imXml = Util.UTF8NoBomEncoding.GetString(mstream.ToArray());
}
OfflineIMData data = new OfflineIMData();

View File

@ -124,7 +124,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
m_log.Debug("[LOAD REGIONS PLUGIN]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " +
Thread.CurrentThread.ManagedThreadId.ToString() +
")");
bool changed = m_openSim.PopulateRegionEstateInfo(regionsToLoad[i]);
m_openSim.CreateRegion(regionsToLoad[i], true, out scene);

View File

@ -38,7 +38,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
public class RegionLoaderFileSystem : IRegionLoader
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IConfigSource m_configSource;
public void SetIniConfigSource(IConfigSource configSource)
@ -72,11 +72,11 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
// Create an empty Regions.ini if there are no existing config files.
if (!allowRegionless && configFiles.Length == 0 && iniFiles.Length == 0)
{
{
new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "Regions.ini"), false, m_configSource);
iniFiles = Directory.GetFiles(regionConfigPath, "*.ini");
}
m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config files from {0}", regionConfigPath);
List<RegionInfo> regionInfos = new List<RegionInfo>();
@ -85,16 +85,16 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
foreach (string file in iniFiles)
{
m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config file {0}", file);
IConfigSource source = new IniConfigSource(file);
foreach (IConfig config in source.Configs)
{
{
RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource, config.Name);
regionInfos.Add(regionInfo);
m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName);
i++;
}
}
@ -102,12 +102,12 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
foreach (string file in configFiles)
{
m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config file {0}", file);
RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource);
regionInfos.Add(regionInfo);
m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName);
i++;
}

View File

@ -122,7 +122,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
throw ex;
}
if (regionCount > 0 | allowRegionless)
if (regionCount > 0 || allowRegionless)
return regionInfos;
m_log.Debug("[WEBLOADER]: Request yielded no regions.");

View File

@ -3,7 +3,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Mono.Addins;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.ApplicationPlugins.RegionModulesController")]
@ -15,8 +15,8 @@ using Mono.Addins;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -26,7 +26,7 @@ using Mono.Addins;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -75,7 +75,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
}
#region IApplicationPlugin implementation
public void Initialise (OpenSimBase openSim)
{
m_openSim = openSim;
@ -111,7 +111,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
{
m_log.InfoFormat(
"[REGIONMODULES]: From plugin {0}, (version {1}), loaded {2} modules, {3} shared, {4} non-shared {5} unknown",
loadedModuleData.Key.Id,
loadedModuleData.Key.Id,
loadedModuleData.Key.Version,
loadedModuleData.Value[0] + loadedModuleData.Value[1] + loadedModuleData.Value[2],
loadedModuleData.Value[0], loadedModuleData.Value[1], loadedModuleData.Value[2]);
@ -261,7 +261,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
}
#region Region Module interfacesController implementation
/// <summary>
/// Check that the given module is no disabled in the [Modules] section of the config files.
/// </summary>
@ -293,10 +293,10 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
if (className != String.Empty &&
node.Type.ToString() != className)
return false;
}
}
return true;
}
}
// The root of all evil.
// This is where we handle adding the modules to scenes when they

View File

@ -3,7 +3,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Mono.Addins;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.ApplicationPlugins.RemoteController")]
@ -15,8 +15,8 @@ using Mono.Addins;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -26,7 +26,7 @@ using Mono.Addins;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -359,6 +359,42 @@ namespace OpenSim.ApplicationPlugins.RemoteController
notice = false;
}
if (startupConfig.GetBoolean("SkipDelayOnEmptyRegion", false))
{
m_log.Info("[RADMIN]: Counting affected avatars");
int agents = 0;
if (restartAll)
{
foreach (Scene s in m_application.SceneManager.Scenes)
{
foreach (ScenePresence sp in s.GetScenePresences())
{
if (!sp.IsChildAgent && !sp.IsNPC)
agents++;
}
}
}
else
{
foreach (ScenePresence sp in rebootedScene.GetScenePresences())
{
if (!sp.IsChildAgent && !sp.IsNPC)
agents++;
}
}
m_log.InfoFormat("[RADMIN]: Avatars in region: {0}", agents);
if (agents == 0)
{
m_log.Info("[RADMIN]: No avatars detected, shutting down without delay");
times.Clear();
times.Add(0);
}
}
List<Scene> restartList;
if (restartAll)
@ -376,10 +412,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
// m_log.ErrorFormat("[RADMIN]: Restart region: failed: {0} {1}", e.Message, e.StackTrace);
m_log.ErrorFormat("[RADMIN]: Restart region: failed: {0} {1}", e.Message, e.StackTrace);
responseData["rebooting"] = false;
throw e;
throw;
}
m_log.Info("[RADMIN]: Restart Region request complete");
@ -575,7 +611,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
responseData["success"] = true;
m_log.Info("[RADMIN]: Shutdown Administrator Request complete");
}
@ -747,9 +783,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
// No INI setting recorded.
}
string regionIniPath;
if (requestData.Contains("region_file"))
{
// Make sure that the file to be created is in a subdirectory of the region storage directory.
@ -773,7 +809,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
region.RegionName.Replace(" ", "_").Replace(":", "_").
Replace("/", "_")));
}
m_log.DebugFormat("[RADMIN] CreateRegion: persisting region {0} to {1}",
region.RegionID, regionIniPath);
region.SaveRegionToFile("dynamic region", regionIniPath);
@ -782,9 +818,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
region.Persistent = false;
}
// Set the estate
// Check for an existing estate
List<int> estateIDs = m_application.EstateDataService.GetEstates((string) requestData["estate_name"]);
if (estateIDs.Count < 1)
@ -795,12 +831,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// ok, client wants us to use an explicit UUID
// regardless of what the avatar name provided
userID = new UUID((string) requestData["estate_owner_uuid"]);
// Check that the specified user exists
Scene currentOrFirst = m_application.SceneManager.CurrentOrFirstScene;
IUserAccountService accountService = currentOrFirst.UserAccountService;
UserAccount user = accountService.GetUserAccount(currentOrFirst.RegionInfo.ScopeID, userID);
if (user == null)
throw new Exception("Specified user was not found.");
}
@ -809,23 +845,23 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// We need to look up the UUID for the avatar with the provided name.
string ownerFirst = (string) requestData["estate_owner_first"];
string ownerLast = (string) requestData["estate_owner_last"];
Scene currentOrFirst = m_application.SceneManager.CurrentOrFirstScene;
IUserAccountService accountService = currentOrFirst.UserAccountService;
UserAccount user = accountService.GetUserAccount(currentOrFirst.RegionInfo.ScopeID,
ownerFirst, ownerLast);
// Check that the specified user exists
if (user == null)
throw new Exception("Specified user was not found.");
userID = user.PrincipalID;
}
else
{
throw new Exception("Estate owner details not provided.");
}
// Create a new estate with the name provided
region.EstateSettings = m_application.EstateDataService.CreateNewEstate();
@ -852,7 +888,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
throw new Exception("Failed to join estate.");
}
}
// Create the region and perform any initial initialization
IScene newScene;
@ -1159,7 +1195,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// Set home position
GridRegion home = scene.GridService.GetRegionByPosition(scopeID,
GridRegion home = scene.GridService.GetRegionByPosition(scopeID,
(int)Util.RegionToWorldLoc(regionXLocation), (int)Util.RegionToWorldLoc(regionYLocation));
if (null == home)
{
@ -1389,7 +1425,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if ((null != regionXLocation) && (null != regionYLocation))
{
GridRegion home = scene.GridService.GetRegionByPosition(scopeID,
GridRegion home = scene.GridService.GetRegionByPosition(scopeID,
(int)Util.RegionToWorldLoc((uint)regionXLocation), (int)Util.RegionToWorldLoc((uint)regionYLocation));
if (null == home) {
m_log.WarnFormat("[RADMIN]: Unable to set home region for updated user account {0} {1}", firstName, lastName);
@ -1416,7 +1452,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
throw e;
}
m_log.Info("[RADMIN]: UpdateUserAccount: request complete");
}
}
@ -1608,7 +1644,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
GetSceneFromRegionParams(requestData, responseData, out scene);
string filename = (string) requestData["filename"];
bool mergeOar = false;
bool skipAssets = false;
@ -1735,7 +1771,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted;
m_log.InfoFormat(
"[RADMIN]: Submitting save OAR request for {0} to file {1}, request ID {2}",
"[RADMIN]: Submitting save OAR request for {0} to file {1}, request ID {2}",
scene.Name, filename, requestId);
archiver.ArchiveRegion(filename, requestId, options);
@ -1898,7 +1934,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
GetSceneFromRegionParams(requestData, responseData, out scene);
health = scene.GetHealth(out flags, out text);
}
catch (Exception e)
catch
{
responseData["error"] = null;
}
@ -2082,8 +2118,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
Hashtable responseData = (Hashtable)response.Value;
// Hashtable requestData = (Hashtable)request.Params[0];
m_application.SceneManager.ForEachScene(s =>
s.RegionInfo.EstateSettings = m_application.EstateDataService.LoadEstateSettings(s.RegionInfo.RegionID, false)
m_application.SceneManager.ForEachScene(s =>
s.RegionInfo.EstateSettings = m_application.EstateDataService.LoadEstateSettings(s.RegionInfo.RegionID, false)
);
responseData["success"] = true;
@ -2815,7 +2851,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (destinationFolder.Type != (short)FolderType.Clothing)
{
destinationFolder = new InventoryFolderBase();
destinationFolder.ID = UUID.Random();
destinationFolder.Name = "Clothing";
destinationFolder.Owner = destination;
@ -2951,11 +2987,11 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
sourceFolder = new InventoryFolderBase();
sourceFolder.ID = UUID.Random();
if (assetType == FolderType.Clothing)
if (assetType == FolderType.Clothing)
{
sourceFolder.Name = "Clothing";
}
else
}
else
{
sourceFolder.Name = "Body Parts";
}
@ -3051,7 +3087,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
/// </summary>
private void ApplyNextOwnerPermissions(InventoryItemBase item)
{
if (item.InvType == (int)InventoryType.Object && (item.CurrentPermissions & 7) != 0)
if (item.InvType == (int)InventoryType.Object)
{
uint perms = item.CurrentPermissions;
PermissionsUtil.ApplyFoldedPermissions(item.CurrentPermissions, ref perms);
@ -3168,7 +3204,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// Set home position
GridRegion home = scene.GridService.GetRegionByPosition(scopeID,
GridRegion home = scene.GridService.GetRegionByPosition(scopeID,
(int)Util.RegionToWorldLoc(regionXLocation), (int)Util.RegionToWorldLoc(regionYLocation));
if (null == home) {
m_log.WarnFormat("[RADMIN]: Unable to set home region for newly created user account {0} {1}", names[0], names[1]);

View File

@ -28,6 +28,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Concurrent;
using System.IO;
using System.Reflection;
using System.Threading;
@ -49,9 +50,9 @@ namespace OpenSim.Framework.Capabilities
/// </summary>
public delegate IClientAPI GetClientDelegate(UUID agentID);
public class Caps
public class Caps : IDisposable
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private string m_httpListenerHostName;
private uint m_httpListenPort;
@ -64,8 +65,8 @@ namespace OpenSim.Framework.Capabilities
private CapsHandlers m_capsHandlers;
private Dictionary<string, PollServiceEventArgs> m_pollServiceHandlers
= new Dictionary<string, PollServiceEventArgs>();
private ConcurrentDictionary<string, PollServiceEventArgs> m_pollServiceHandlers
= new ConcurrentDictionary<string, PollServiceEventArgs>();
private Dictionary<string, string> m_externalCapsHandlers = new Dictionary<string, string>();
@ -119,6 +120,19 @@ namespace OpenSim.Framework.Capabilities
get { return m_externalCapsHandlers; }
}
[Flags]
public enum CapsFlags:uint
{
None = 0,
SentSeeds = 1,
ObjectAnim = 0x100,
WLEnv = 0x200,
AdvEnv = 0x400
}
public CapsFlags Flags { get; set;}
public Caps(IHttpServer httpServer, string httpListen, uint httpPort, string capsPath,
UUID agent, string regionName)
{
@ -136,11 +150,39 @@ namespace OpenSim.Framework.Capabilities
}
m_agentID = agent;
m_capsHandlers = new CapsHandlers(httpServer, httpListen, httpPort, (httpServer == null) ? false : httpServer.UseSSL);
m_capsHandlers = new CapsHandlers(httpServer, httpListen, httpPort);
m_regionName = regionName;
Flags = CapsFlags.None;
m_capsActive.Reset();
}
~Caps()
{
Flags = CapsFlags.None;
if (m_capsActive!= null)
{
m_capsActive.Dispose();
m_capsActive = null;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
public void Dispose(bool disposing)
{
Flags = CapsFlags.None;
if (m_capsActive != null)
{
DeregisterHandlers();
m_capsActive.Dispose();
m_capsActive = null;
}
}
/// <summary>
/// Register a handler. This allows modules to register handlers.
/// </summary>
@ -152,20 +194,32 @@ namespace OpenSim.Framework.Capabilities
m_capsHandlers[capName] = handler;
}
public void RegisterSimpleHandler(string capName, ISimpleStreamHandler handler, bool addToListener = true)
{
//m_log.DebugFormat("[CAPS]: Registering handler for \"{0}\": path {1}", capName, handler.Path);
m_capsHandlers.AddSimpleHandler(capName, handler, addToListener);
}
public void RegisterPollHandler(string capName, PollServiceEventArgs pollServiceHandler)
{
// m_log.DebugFormat(
// "[CAPS]: Registering handler with name {0}, url {1} for {2}",
// "[CAPS]: Registering handler with name {0}, url {1} for {2}",
// capName, pollServiceHandler.Url, m_agentID, m_regionName);
m_pollServiceHandlers.Add(capName, pollServiceHandler);
if(!m_pollServiceHandlers.TryAdd(capName, pollServiceHandler))
{
m_log.ErrorFormat(
"[CAPS]: Handler with name {0} already registered (ulr {1}, agent {2}, region {3}",
capName, pollServiceHandler.Url, m_agentID, m_regionName);
return;
}
m_httpListener.AddPollServiceHTTPHandler(pollServiceHandler.Url, pollServiceHandler);
m_httpListener.AddPollServiceHTTPHandler(pollServiceHandler);
// uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port;
// string protocol = "http";
// string hostName = m_httpListenerHostName;
//
//
// if (MainServer.Instance.UseSSL)
// {
// hostName = MainServer.Instance.SSLCommonName;
@ -200,8 +254,9 @@ namespace OpenSim.Framework.Capabilities
foreach (PollServiceEventArgs handler in m_pollServiceHandlers.Values)
{
m_httpListener.RemovePollServiceHTTPHandler("", handler.Url);
m_httpListener.RemovePollServiceHTTPHandler(handler.Url);
}
m_pollServiceHandlers.Clear();
}
public bool TryGetPollHandler(string name, out PollServiceEventArgs pollHandler)
@ -233,16 +288,13 @@ namespace OpenSim.Framework.Capabilities
string hostName = m_httpListenerHostName;
uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port;
string protocol = "http";
if (MainServer.Instance.UseSSL)
{
hostName = MainServer.Instance.SSLCommonName;
port = MainServer.Instance.SSLPort;
protocol = "https";
}
//
// caps.RegisterHandler("FetchInventoryDescendents2", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
caps[kvp.Key] = string.Format("{0}://{1}:{2}{3}", protocol, hostName, port, kvp.Value.Url);
}
}
@ -256,6 +308,7 @@ namespace OpenSim.Framework.Capabilities
caps[kvp.Key] = kvp.Value;
}
return caps;
}

View File

@ -27,6 +27,7 @@
using System.Collections;
using System.Collections.Generic;
using System.Collections.Concurrent;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
@ -40,6 +41,7 @@ namespace OpenSim.Framework.Capabilities
public class CapsHandlers
{
private Dictionary<string, IRequestHandler> m_capsHandlers = new Dictionary<string, IRequestHandler>();
private ConcurrentDictionary<string, ISimpleStreamHandler> m_capsSimpleHandlers = new ConcurrentDictionary<string, ISimpleStreamHandler>();
private IHttpServer m_httpListener;
private string m_httpListenerHostName;
private uint m_httpListenerPort;
@ -53,31 +55,15 @@ namespace OpenSim.Framework.Capabilities
/// <param name="httpListener">base HTTP server</param>
/// <param name="httpListenerHostname">host name of the HTTP server</param>
/// <param name="httpListenerPort">HTTP port</param>
public CapsHandlers(BaseHttpServer httpListener, string httpListenerHostname, uint httpListenerPort)
: this(httpListener,httpListenerHostname,httpListenerPort, false)
{
}
/// <summary></summary>
/// CapsHandlers is a cap handler container but also takes
/// care of adding and removing cap handlers to and from the
/// supplied BaseHttpServer.
/// </summary>
/// <param name="httpListener">base HTTP server</param>
/// <param name="httpListenerHostname">host name of the HTTP
/// server</param>
/// <param name="httpListenerPort">HTTP port</param>
public CapsHandlers(IHttpServer httpListener, string httpListenerHostname, uint httpListenerPort, bool https)
{
public CapsHandlers(IHttpServer httpListener, string httpListenerHostname, uint httpListenerPort)
{
m_httpListener = httpListener;
m_httpListenerHostName = httpListenerHostname;
m_httpListenerPort = httpListenerPort;
m_useSSL = https;
if (httpListener != null && m_useSSL)
{
m_httpListenerHostName = httpListener.SSLCommonName;
m_httpListenerPort = httpListener.SSLPort;
}
if (httpListener != null && httpListener.UseSSL)
m_useSSL = true;
else
m_useSSL = false;
}
/// <summary>
@ -89,17 +75,35 @@ namespace OpenSim.Framework.Capabilities
{
lock (m_capsHandlers)
{
m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[capsName].Path);
m_httpListener.RemoveStreamHandler("PUT", m_capsHandlers[capsName].Path);
m_httpListener.RemoveStreamHandler("GET", m_capsHandlers[capsName].Path);
m_capsHandlers.Remove(capsName);
if(m_capsHandlers.ContainsKey(capsName))
{
m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[capsName].Path);
m_httpListener.RemoveStreamHandler("PUT", m_capsHandlers[capsName].Path);
m_httpListener.RemoveStreamHandler("GET", m_capsHandlers[capsName].Path);
m_httpListener.RemoveStreamHandler("DELETE", m_capsHandlers[capsName].Path);
m_capsHandlers.Remove(capsName);
}
}
if(m_capsSimpleHandlers.TryRemove(capsName, out ISimpleStreamHandler hdr))
{
m_httpListener.RemoveSimpleStreamHandler(hdr.Path);
}
}
public void AddSimpleHandler(string capName, ISimpleStreamHandler handler, bool addToListener = true)
{
if(ContainsCap(capName))
Remove(capName);
if(m_capsSimpleHandlers.TryAdd(capName, handler) && addToListener)
m_httpListener.AddSimpleStreamHandler(handler);
}
public bool ContainsCap(string cap)
{
lock (m_capsHandlers)
return m_capsHandlers.ContainsKey(cap);
if (m_capsHandlers.ContainsKey(cap))
return true;
return m_capsSimpleHandlers.ContainsKey(cap);
}
/// <summary>
@ -126,11 +130,14 @@ namespace OpenSim.Framework.Capabilities
if (m_capsHandlers.ContainsKey(idx))
{
m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[idx].Path);
m_httpListener.RemoveStreamHandler("PUT", m_capsHandlers[idx].Path);
m_httpListener.RemoveStreamHandler("GET", m_capsHandlers[idx].Path);
m_httpListener.RemoveStreamHandler("DELETE", m_capsHandlers[idx].Path);
m_capsHandlers.Remove(idx);
}
if (null == value) return;
m_capsHandlers[idx] = value;
m_httpListener.AddStreamHandler(value);
}
@ -147,8 +154,9 @@ namespace OpenSim.Framework.Capabilities
{
lock (m_capsHandlers)
{
string[] __keys = new string[m_capsHandlers.Keys.Count];
string[] __keys = new string[m_capsHandlers.Keys.Count + m_capsSimpleHandlers.Keys.Count];
m_capsHandlers.Keys.CopyTo(__keys, 0);
m_capsSimpleHandlers.Keys.CopyTo(__keys, m_capsHandlers.Keys.Count);
return __keys;
}
}
@ -162,24 +170,39 @@ namespace OpenSim.Framework.Capabilities
public Hashtable GetCapsDetails(bool excludeSeed, List<string> requestedCaps)
{
Hashtable caps = new Hashtable();
string protocol = "http://";
if (m_useSSL)
protocol = "https://";
string protocol = m_useSSL ? "https://" : "http://";
string baseUrl = protocol + m_httpListenerHostName + ":" + m_httpListenerPort.ToString();
if (requestedCaps == null)
{
lock (m_capsHandlers)
{
foreach (KeyValuePair<string, ISimpleStreamHandler> kvp in m_capsSimpleHandlers)
caps[kvp.Key] = baseUrl + kvp.Value.Path;
foreach (KeyValuePair<string, IRequestHandler> kvp in m_capsHandlers)
caps[kvp.Key] = baseUrl + kvp.Value.Path;
}
return caps;
}
lock (m_capsHandlers)
{
foreach (string capsName in m_capsHandlers.Keys)
for(int i = 0; i < requestedCaps.Count; ++i)
{
string capsName = requestedCaps[i];
if (excludeSeed && "SEED" == capsName)
continue;
if (requestedCaps != null && !requestedCaps.Contains(capsName))
if (m_capsSimpleHandlers.TryGetValue(capsName, out ISimpleStreamHandler shdr))
{
caps[capsName] = baseUrl + shdr.Path;
continue;
caps[capsName] = baseUrl + m_capsHandlers[capsName].Path;
}
if (m_capsHandlers.TryGetValue(capsName, out IRequestHandler chdr))
{
caps[capsName] = baseUrl + chdr.Path;
}
}
}

View File

@ -1,116 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Reflection;
using System.Web;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Capabilities;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
//using OpenSim.Region.Framework.Interfaces;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class AvatarPickerSearchHandler : BaseStreamHandler
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IPeople m_PeopleService;
public AvatarPickerSearchHandler(string path, IPeople peopleService, string name, string description)
: base("GET", path, name, description)
{
m_PeopleService = peopleService;
}
protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
// Try to parse the texture ID from the request URL
NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
string names = query.GetOne("names");
string psize = query.GetOne("page_size");
string pnumber = query.GetOne("page");
if (m_PeopleService == null)
return FailureResponse(names, (int)System.Net.HttpStatusCode.InternalServerError, httpResponse);
if (string.IsNullOrEmpty(names) || names.Length < 3)
return FailureResponse(names, (int)System.Net.HttpStatusCode.BadRequest, httpResponse);
m_log.DebugFormat("[AVATAR PICKER SEARCH]: search for {0}", names);
int page_size = (string.IsNullOrEmpty(psize) ? 500 : Int32.Parse(psize));
int page_number = (string.IsNullOrEmpty(pnumber) ? 1 : Int32.Parse(pnumber));
// Full content request
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.OK;
//httpResponse.ContentLength = ??;
httpResponse.ContentType = "application/llsd+xml";
List<UserData> users = m_PeopleService.GetUserData(names, page_size, page_number);
LLSDAvatarPicker osdReply = new LLSDAvatarPicker();
osdReply.next_page_url = httpRequest.RawUrl;
foreach (UserData u in users)
osdReply.agents.Array.Add(ConvertUserData(u));
string reply = LLSDHelpers.SerialiseLLSDReply(osdReply);
return System.Text.Encoding.UTF8.GetBytes(reply);
}
private LLSDPerson ConvertUserData(UserData user)
{
LLSDPerson p = new LLSDPerson();
p.legacy_first_name = user.FirstName;
p.legacy_last_name = user.LastName;
p.display_name = user.FirstName + " " + user.LastName;
if (user.LastName.StartsWith("@"))
p.username = user.FirstName.ToLower() + user.LastName.ToLower();
else
p.username = user.FirstName.ToLower() + "." + user.LastName.ToLower();
p.id = user.Id;
p.is_display_name_default = false;
return p;
}
private byte[] FailureResponse(string names, int statuscode, IOSHttpResponse httpResponse)
{
m_log.Error("[AVATAR PICKER SEARCH]: Error searching for " + names);
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return System.Text.Encoding.UTF8.GetBytes(string.Empty);
}
}
}

View File

@ -29,9 +29,12 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
namespace OpenSim.Capabilities.Handlers
{
@ -67,16 +70,16 @@ namespace OpenSim.Capabilities.Handlers
m_LibraryService =
ServerUtils.LoadPlugin<ILibraryService>(libService, args);
FetchInvDescHandler webFetchHandler = new FetchInvDescHandler(m_InventoryService, m_LibraryService, null);
IRequestHandler reqHandler
= new RestStreamHandler(
"POST",
"/CAPS/WebFetchInvDesc/" /*+ UUID.Random()*/,
webFetchHandler.FetchInventoryDescendentsRequest,
"FetchInvDescendents",
null);
server.AddStreamHandler(reqHandler);
}
ExpiringKey<UUID> m_badRequests = new ExpiringKey<UUID>(30000);
FetchInvDescHandler webFetchHandler = new FetchInvDescHandler(m_InventoryService, m_LibraryService, null);
ISimpleStreamHandler reqHandler
= new SimpleStreamHandler("/CAPS/WebFetchInvDesc/", delegate(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
webFetchHandler.FetchInventoryDescendentsRequest(httpRequest, httpResponse, m_badRequests);
});
server.AddSimpleStreamHandler(reqHandler);
}
}
}

View File

@ -25,11 +25,12 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System.Net;
using System.Reflection;
using System.Text;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
using OpenSim.Framework.Capabilities;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
using OSDArray = OpenMetaverse.StructuredData.OSDArray;
@ -59,9 +60,6 @@ namespace OpenSim.Capabilities.Handlers
OSDMap requestmap = (OSDMap)OSDParser.DeserializeLLSDXml(Utils.StringToBytes(request));
OSDArray itemsRequested = (OSDArray)requestmap["items"];
string reply;
LLSDFetchInventory llsdReply = new LLSDFetchInventory();
UUID[] itemIDs = new UUID[itemsRequested.Count];
int i = 0;
@ -75,15 +73,6 @@ namespace OpenSim.Capabilities.Handlers
if (m_agentID != UUID.Zero)
{
items = m_inventoryService.GetMultipleItems(m_agentID, itemIDs);
if (items == null)
{
// OMG!!! One by one!!! This is fallback code, in case the backend isn't updated
m_log.WarnFormat("[FETCH INVENTORY HANDLER]: GetMultipleItems failed. Falling back to fetching inventory items one by one.");
items = new InventoryItemBase[itemsRequested.Count];
foreach (UUID id in itemIDs)
items[i++] = m_inventoryService.GetItem(m_agentID, id);
}
}
else
{
@ -92,55 +81,86 @@ namespace OpenSim.Capabilities.Handlers
items[i++] = m_inventoryService.GetItem(UUID.Zero, id);
}
foreach (InventoryItemBase item in items)
StringBuilder lsl = LLSDxmlEncode.Start(4096);
LLSDxmlEncode.AddMap(lsl);
if(m_agentID == UUID.Zero && items.Length > 0)
LLSDxmlEncode.AddElem("agent_id", items[0].Owner, lsl);
else
LLSDxmlEncode.AddElem("agent_id", m_agentID, lsl);
if(items == null || items.Length == 0)
{
if (item != null)
{
// We don't know the agent that this request belongs to so we'll use the agent id of the item
// which will be the same for all items.
llsdReply.agent_id = item.Owner;
llsdReply.items.Array.Add(ConvertInventoryItem(item));
}
LLSDxmlEncode.AddEmptyArray("items", lsl);
}
else
{
LLSDxmlEncode.AddArray("items", lsl);
foreach (InventoryItemBase item in items)
{
if (item != null)
item.ToLLSDxml(lsl, 0xff);
}
LLSDxmlEncode.AddEndArray(lsl);
}
reply = LLSDHelpers.SerialiseLLSDReply(llsdReply);
return reply;
LLSDxmlEncode.AddEndMap(lsl);
return LLSDxmlEncode.End(lsl);
}
/// <summary>
/// Convert an internal inventory item object into an LLSD object.
/// </summary>
/// <param name="invItem"></param>
/// <returns></returns>
private LLSDInventoryItem ConvertInventoryItem(InventoryItemBase invItem)
public void FetchInventorySimpleRequest(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse, OSDMap requestmap, ExpiringKey<UUID> BadRequests)
{
LLSDInventoryItem llsdItem = new LLSDInventoryItem();
llsdItem.asset_id = invItem.AssetID;
llsdItem.created_at = invItem.CreationDate;
llsdItem.desc = invItem.Description;
llsdItem.flags = ((int)invItem.Flags) & 0xff;
llsdItem.item_id = invItem.ID;
llsdItem.name = invItem.Name;
llsdItem.parent_id = invItem.Folder;
llsdItem.type = invItem.AssetType;
llsdItem.inv_type = invItem.InvType;
//m_log.DebugFormat("[FETCH INVENTORY HANDLER]: Received FetchInventory capability request {0}", request);
llsdItem.permissions = new LLSDPermissions();
llsdItem.permissions.creator_id = invItem.CreatorIdAsUuid;
llsdItem.permissions.base_mask = (int)invItem.CurrentPermissions;
llsdItem.permissions.everyone_mask = (int)invItem.EveryOnePermissions;
llsdItem.permissions.group_id = invItem.GroupID;
llsdItem.permissions.group_mask = (int)invItem.GroupPermissions;
llsdItem.permissions.is_owner_group = invItem.GroupOwned;
llsdItem.permissions.next_owner_mask = (int)invItem.NextPermissions;
llsdItem.permissions.owner_id = invItem.Owner;
llsdItem.permissions.owner_mask = (int)invItem.CurrentPermissions;
llsdItem.sale_info = new LLSDSaleInfo();
llsdItem.sale_info.sale_price = invItem.SalePrice;
llsdItem.sale_info.sale_type = invItem.SaleType;
if(BadRequests == null)
{
httpResponse.StatusCode = (int)HttpStatusCode.NotFound;
return;
}
return llsdItem;
OSDArray itemsRequested = (OSDArray)requestmap["items"];
UUID[] itemIDs = new UUID[itemsRequested.Count];
int i = 0;
foreach (OSDMap osdItemId in itemsRequested)
{
UUID id = osdItemId["item_id"].AsUUID();
if(!BadRequests.ContainsKey(id))
itemIDs[i++] = id;
}
InventoryItemBase[] items = null;
try
{
// badrequests still not filled
items = m_inventoryService.GetMultipleItems(m_agentID, itemIDs);
}
catch{ }
StringBuilder lsl = LLSDxmlEncode.Start(4096);
LLSDxmlEncode.AddMap(lsl);
LLSDxmlEncode.AddElem("agent_id", m_agentID, lsl);
if (items == null || items.Length == 0)
{
LLSDxmlEncode.AddEmptyArray("items", lsl);
}
else
{
LLSDxmlEncode.AddArray("items", lsl);
foreach (InventoryItemBase item in items)
{
if (item != null)
item.ToLLSDxml(lsl, 0xff);
}
LLSDxmlEncode.AddEndArray(lsl);
}
LLSDxmlEncode.AddEndMap(lsl);
httpResponse.RawBuffer = Util.UTF8.GetBytes(LLSDxmlEncode.End(lsl));
httpResponse.StatusCode = (int)HttpStatusCode.OK;
}
}
}

View File

@ -120,7 +120,7 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
string request = "<llsd><map><key>items</key><array><map><key>item_id</key><uuid>";
request += "10000000-0000-0000-0000-000000000001"; // Notecard 1
request += "</uuid></map></array></map></llsd>";
string llsdresponse = handler.FetchInventoryRequest(request, "/FETCH", string.Empty, req, resp);
Assert.That(llsdresponse != null, Is.True, "Incorrect null response");

View File

@ -28,7 +28,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using log4net;
using log4net.Config;
@ -46,7 +46,7 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
[TestFixture]
public class FetchInventoryDescendents2HandlerTests : OpenSimTestCase
{
private UUID m_userID = UUID.Zero;
private UUID m_userID = new UUID("00000000-0000-0000-0000-000000000001");
private Scene m_scene;
private UUID m_rootFolderID;
private int m_rootDescendents;
@ -103,6 +103,7 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
// Add a folder
InventoryFolderBase folder = new InventoryFolderBase(new UUID("f0000000-0000-0000-0000-00000000000f"), "Test Folder", m_userID, m_rootFolderID);
folder.Type = (short)FolderType.None;
m_scene.InventoryService.AddFolder(folder);
// Add a link to notecard 2 in Test Folder
@ -126,6 +127,19 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
Console.WriteLine("Number of descendents: " + m_rootDescendents);
}
private string dorequest(FetchInvDescHandler handler, string request)
{
TestOSHttpRequest req = new TestOSHttpRequest();
TestOSHttpResponse resp = new TestOSHttpResponse();
using(ExpiringKey<UUID> bad = new ExpiringKey<UUID>(5000)) // bad but this is test
using (MemoryStream ms = new MemoryStream(Utils.StringToBytes(request), false))
{
req.InputStream = ms;
handler.FetchInventoryDescendentsRequest(req, resp, bad);
}
return Util.UTF8.GetString(resp.RawBuffer);
}
[Test]
public void Test_001_SimpleFolder()
{
@ -134,18 +148,18 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
Init();
FetchInvDescHandler handler = new FetchInvDescHandler(m_scene.InventoryService, null, m_scene);
TestOSHttpRequest req = new TestOSHttpRequest();
TestOSHttpResponse resp = new TestOSHttpResponse();
string request = "<llsd><map><key>folders</key><array><map><key>fetch_folders</key><integer>1</integer><key>fetch_items</key><boolean>1</boolean><key>folder_id</key><uuid>";
request += m_rootFolderID;
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000000</uuid><key>sort_order</key><integer>1</integer></map></array></map></llsd>";
string llsdresponse = handler.FetchInventoryDescendentsRequest(request, "/FETCH", string.Empty, req, resp);
request += "</uuid><key>owner_id</key><uuid>";
request += m_userID.ToString();
request += "</uuid><key>sort_order</key><integer>1</integer></map></array></map></llsd>";
string llsdresponse = dorequest(handler, request);
Assert.That(llsdresponse != null, Is.True, "Incorrect null response");
Assert.That(llsdresponse != string.Empty, Is.True, "Incorrect empty response");
Assert.That(llsdresponse.Contains("00000000-0000-0000-0000-000000000000"), Is.True, "Response should contain userID");
Assert.That(llsdresponse.Contains(m_userID.ToString()), Is.True, "Response should contain userID");
string descendents = "descendents</key><integer>" + m_rootDescendents + "</integer>";
Assert.That(llsdresponse.Contains(descendents), Is.True, "Incorrect number of descendents");
@ -158,19 +172,17 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
TestHelpers.InMethod();
FetchInvDescHandler handler = new FetchInvDescHandler(m_scene.InventoryService, null, m_scene);
TestOSHttpRequest req = new TestOSHttpRequest();
TestOSHttpResponse resp = new TestOSHttpResponse();
string request = "<llsd><map><key>folders</key><array>";
request += "<map><key>fetch_folders</key><integer>1</integer><key>fetch_items</key><boolean>1</boolean><key>folder_id</key><uuid>";
request += m_rootFolderID;
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000000</uuid><key>sort_order</key><integer>1</integer></map>";
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000001</uuid><key>sort_order</key><integer>1</integer></map>";
request += "<map><key>fetch_folders</key><integer>1</integer><key>fetch_items</key><boolean>1</boolean><key>folder_id</key><uuid>";
request += m_notecardsFolder;
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000000</uuid><key>sort_order</key><integer>1</integer></map>";
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000001</uuid><key>sort_order</key><integer>1</integer></map>";
request += "</array></map></llsd>";
string llsdresponse = handler.FetchInventoryDescendentsRequest(request, "/FETCH", string.Empty, req, resp);
string llsdresponse = dorequest(handler, request);
Console.WriteLine(llsdresponse);
string descendents = "descendents</key><integer>" + m_rootDescendents + "</integer>";
@ -188,14 +200,12 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
TestHelpers.InMethod();
FetchInvDescHandler handler = new FetchInvDescHandler(m_scene.InventoryService, null, m_scene);
TestOSHttpRequest req = new TestOSHttpRequest();
TestOSHttpResponse resp = new TestOSHttpResponse();
string request = "<llsd><map><key>folders</key><array><map><key>fetch_folders</key><integer>1</integer><key>fetch_items</key><boolean>1</boolean><key>folder_id</key><uuid>";
request += "f0000000-0000-0000-0000-00000000000f";
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000000</uuid><key>sort_order</key><integer>1</integer></map></array></map></llsd>";
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000001</uuid><key>sort_order</key><integer>1</integer></map></array></map></llsd>";
string llsdresponse = handler.FetchInventoryDescendentsRequest(request, "/FETCH", string.Empty, req, resp);
string llsdresponse = dorequest(handler, request);
Console.WriteLine(llsdresponse);
string descendents = "descendents</key><integer>2</integer>";
@ -203,7 +213,7 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
// Make sure that the note card link is included
Assert.That(llsdresponse.Contains("Link to notecard"), Is.True, "Link to notecard is missing");
//Make sure the notecard item itself is included
Assert.That(llsdresponse.Contains("Test Notecard 2"), Is.True, "Notecard 2 item (the source) is missing");
@ -232,8 +242,6 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
TestHelpers.InMethod();
FetchInvDescHandler handler = new FetchInvDescHandler(m_scene.InventoryService, null, m_scene);
TestOSHttpRequest req = new TestOSHttpRequest();
TestOSHttpResponse resp = new TestOSHttpResponse();
string request = "<llsd><map><key>folders</key><array>";
request += "<map><key>fetch_folders</key><integer>1</integer><key>fetch_items</key><boolean>1</boolean><key>folder_id</key><uuid>";
@ -250,7 +258,7 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000000</uuid><key>sort_order</key><integer>1</integer></map>";
request += "</array></map></llsd>";
string llsdresponse = handler.FetchInventoryDescendentsRequest(request, "/FETCH", string.Empty, req, resp);
string llsdresponse = dorequest(handler, request);
Console.WriteLine(llsdresponse);
string root_folder = "<key>folder_id</key><uuid>" + m_rootFolderID + "</uuid>";
@ -267,27 +275,26 @@ namespace OpenSim.Capabilities.Handlers.FetchInventory.Tests
[Test]
public void Test_005_FolderZero()
{
TestHelpers.InMethod();
Init();
FetchInvDescHandler handler = new FetchInvDescHandler(m_scene.InventoryService, null, m_scene);
TestOSHttpRequest req = new TestOSHttpRequest();
TestOSHttpResponse resp = new TestOSHttpResponse();
string request = "<llsd><map><key>folders</key><array><map><key>fetch_folders</key><integer>1</integer><key>fetch_items</key><boolean>1</boolean><key>folder_id</key><uuid>";
request += UUID.Zero;
request += "</uuid><key>owner_id</key><uuid>00000000-0000-0000-0000-000000000000</uuid><key>sort_order</key><integer>1</integer></map></array></map></llsd>";
string llsdresponse = handler.FetchInventoryDescendentsRequest(request, "/FETCH", string.Empty, req, resp);
string llsdresponse = dorequest(handler, request);
Assert.That(llsdresponse != null, Is.True, "Incorrect null response");
Assert.That(llsdresponse != string.Empty, Is.True, "Incorrect empty response");
Assert.That(llsdresponse.Contains("bad_folders</key><array><uuid>00000000-0000-0000-0000-000000000000"), Is.True, "Folder Zero should be a bad folder");
// we do return a answer now
//Assert.That(llsdresponse.Contains("bad_folders</key><array><uuid>00000000-0000-0000-0000-000000000000"), Is.True, "Folder Zero should be a bad folder");
Console.WriteLine(llsdresponse);
}
}
}

View File

@ -0,0 +1,190 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Reflection;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class GetAssetsHandler
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static readonly Dictionary<string, AssetType> queryTypes = new Dictionary<string, AssetType>()
{
{"texture_id", AssetType.Texture},
{"sound_id", AssetType.Sound},
{"callcard_id", AssetType.CallingCard},
{"landmark_id", AssetType.Landmark},
{"script_id", AssetType.LSLText},
{"clothing_id", AssetType.Clothing},
{"object_id", AssetType.Object},
{"notecard_id", AssetType.Notecard},
{"lsltext_id", AssetType.LSLText},
{"lslbyte_id", AssetType.LSLBytecode},
{"txtr_tga_id", AssetType.TextureTGA},
{"bodypart_id", AssetType.Bodypart},
{"snd_wav_id", AssetType.SoundWAV},
{"img_tga_id", AssetType.ImageTGA},
{"jpeg_id", AssetType.ImageJPEG},
{"animatn_id", AssetType.Animation},
{"gesture_id", AssetType.Gesture},
{"mesh_id", AssetType.Mesh},
{"settings_id", AssetType.Settings}
};
private IAssetService m_assetService;
public GetAssetsHandler(IAssetService assService)
{
m_assetService = assService;
}
public void Handle(OSHttpRequest req, OSHttpResponse response)
{
response.ContentType = "text/plain";
if (m_assetService == null)
{
response.StatusCode = (int)HttpStatusCode.ServiceUnavailable;
response.KeepAlive = false;
return;
}
response.StatusCode = (int)HttpStatusCode.BadRequest;
var queries = req.QueryAsDictionary;
if(queries.Count == 0)
return;
AssetType type = AssetType.Unknown;
string assetStr = string.Empty;
foreach (KeyValuePair<string,string> kvp in queries)
{
if (queryTypes.ContainsKey(kvp.Key))
{
type = queryTypes[kvp.Key];
assetStr = kvp.Value;
break;
}
}
if(type == AssetType.Unknown)
{
//m_log.Warn("[GETASSET]: Unknown type: " + query);
m_log.Warn("[GETASSET]: Unknown type");
response.StatusCode = (int)HttpStatusCode.NotFound;
return;
}
if (String.IsNullOrEmpty(assetStr))
return;
UUID assetID = UUID.Zero;
if(!UUID.TryParse(assetStr, out assetID))
return;
AssetBase asset = m_assetService.Get(assetID.ToString());
if(asset == null)
{
// m_log.Warn("[GETASSET]: not found: " + query + " " + assetStr);
response.StatusCode = (int)HttpStatusCode.NotFound;
return;
}
if (asset.Type != (sbyte)type)
return;
int len = asset.Data.Length;
string range = null;
if (req.Headers["Range"] != null)
range = req.Headers["Range"];
else if (req.Headers["range"] != null)
range = req.Headers["range"];
// range request
int start, end;
if (Util.TryParseHttpRange(range, out start, out end))
{
// Before clamping start make sure we can satisfy it in order to avoid
// sending back the last byte instead of an error status
if (start >= asset.Data.Length)
{
response.StatusCode = (int)HttpStatusCode.RequestedRangeNotSatisfiable;
return;
}
if (end == -1)
end = asset.Data.Length - 1;
else
end = Utils.Clamp(end, 0, asset.Data.Length - 1);
start = Utils.Clamp(start, 0, end);
len = end - start + 1;
//m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
response.AddHeader("Content-Range", String.Format("bytes {0}-{1}/{2}", start, end, asset.Data.Length));
response.StatusCode = (int)HttpStatusCode.PartialContent;
response.RawBufferStart = start;
}
else
response.StatusCode = (int)HttpStatusCode.OK;
response.ContentType = asset.Metadata.ContentType;
response.RawBuffer = asset.Data;
response.RawBufferLen = len;
if (type == AssetType.Mesh || type == AssetType.Texture)
{
if(len > 8196)
{
//if(type == AssetType.Texture && ((asset.Flags & AssetFlags.AvatarBake)!= 0))
// responsedata["prio"] = 1;
//else
response.Priority = 2;
}
else
response.Priority = 1;
}
else
response.Priority = -1;
}
}
}

View File

@ -1,117 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Reflection;
using System.IO;
using System.Web;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
using OSDMap = OpenMetaverse.StructuredData.OSDMap;
using OSDArray = OpenMetaverse.StructuredData.OSDArray;
namespace OpenSim.Capabilities.Handlers
{
public class GetDisplayNamesHandler : BaseStreamHandler
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected IUserManagement m_UserManagement;
public GetDisplayNamesHandler(string path, IUserManagement umService, string name, string description)
: base("GET", path, name, description)
{
m_UserManagement = umService;
}
protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
// m_log.DebugFormat("[GET_DISPLAY_NAMES]: called {0}", httpRequest.Url.Query);
NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
string[] ids = query.GetValues("ids");
if (m_UserManagement == null)
{
m_log.Error("[GET_DISPLAY_NAMES]: Cannot fetch display names without a user management component");
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError;
return new byte[0];
}
Dictionary<UUID,string> names = m_UserManagement.GetUsersNames(ids);
OSDMap osdReply = new OSDMap();
OSDArray agents = new OSDArray();
osdReply["agents"] = agents;
foreach (KeyValuePair<UUID,string> kvp in names)
{
if (string.IsNullOrEmpty(kvp.Value))
continue;
if(kvp.Key == UUID.Zero)
continue;
string[] parts = kvp.Value.Split(new char[] {' '});
OSDMap osdname = new OSDMap();
if(parts[0] == "Unknown")
{
osdname["display_name_next_update"] = OSD.FromDate(DateTime.UtcNow.AddHours(1));
osdname["display_name_expires"] = OSD.FromDate(DateTime.UtcNow.AddHours(2));
}
else
{
osdname["display_name_next_update"] = OSD.FromDate(DateTime.UtcNow.AddDays(8));
osdname["display_name_expires"] = OSD.FromDate(DateTime.UtcNow.AddMonths(1));
}
osdname["display_name"] = OSD.FromString(kvp.Value);
osdname["legacy_first_name"] = parts[0];
osdname["legacy_last_name"] = parts[1];
osdname["username"] = OSD.FromString(kvp.Value);
osdname["id"] = OSD.FromUUID(kvp.Key);
osdname["is_display_name_default"] = OSD.FromBoolean(true);
agents.Add(osdname);
}
// Full content request
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.OK;
//httpResponse.ContentLength = ??;
httpResponse.ContentType = "application/llsd+xml";
string reply = OSDParser.SerializeLLSDXmlString(osdReply);
return System.Text.Encoding.UTF8.GetBytes(reply);
}
}
}

View File

@ -41,9 +41,6 @@ using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class GetMeshHandler
@ -61,211 +58,98 @@ namespace OpenSim.Capabilities.Handlers
}
public Hashtable Handle(Hashtable request)
{
Hashtable ret = new Hashtable();
ret["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound;
ret["content_type"] = "text/plain";
ret["keepalive"] = false;
ret["reusecontext"] = false;
ret["int_bytes"] = 0;
ret["int_lod"] = 0;
string MeshStr = (string)request["mesh_id"];
//m_log.DebugFormat("[GETMESH]: called {0}", MeshStr);
if (m_assetService == null)
{
m_log.Error("[GETMESH]: Cannot fetch mesh " + MeshStr + " without an asset service");
}
UUID meshID;
if (!String.IsNullOrEmpty(MeshStr) && UUID.TryParse(MeshStr, out meshID))
{
// m_log.DebugFormat("[GETMESH]: Received request for mesh id {0}", meshID);
ret = ProcessGetMesh(request, UUID.Zero, null);
}
else
{
m_log.Warn("[GETMESH]: Failed to parse a mesh_id from GetMesh request: " + (string)request["uri"]);
}
return ret;
return ProcessGetMesh(request, UUID.Zero, null); ;
}
public Hashtable ProcessGetMesh(Hashtable request, UUID AgentId, Caps cap)
{
Hashtable responsedata = new Hashtable();
responsedata["int_response_code"] = 400; //501; //410; //404;
if (m_assetService == null)
{
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.ServiceUnavailable;
responsedata["str_response_string"] = "The asset service is unavailable";
responsedata["keepalive"] = false;
return responsedata;
}
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.BadRequest;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["str_response_string"] = "Request wasn't what was expected";
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 0;
responsedata["int_bytes"] = 0;
string meshStr = string.Empty;
if (request.ContainsKey("mesh_id"))
meshStr = request["mesh_id"].ToString();
if (String.IsNullOrEmpty(meshStr))
return responsedata;
UUID meshID = UUID.Zero;
if (!String.IsNullOrEmpty(meshStr) && UUID.TryParse(meshStr, out meshID))
if(!UUID.TryParse(meshStr, out meshID))
return responsedata;
AssetBase mesh = m_assetService.Get(meshID.ToString());
if(mesh == null)
{
if (m_assetService == null)
{
responsedata["int_response_code"] = 404; //501; //410; //404;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["str_response_string"] = "The asset service is unavailable. So is your mesh.";
responsedata["reusecontext"] = false;
return responsedata;
}
AssetBase mesh = m_assetService.Get(meshID.ToString());
if (mesh != null)
{
if (mesh.Type == (SByte)AssetType.Mesh)
{
Hashtable headers = new Hashtable();
responsedata["headers"] = headers;
string range = String.Empty;
if (((Hashtable)request["headers"])["range"] != null)
range = (string)((Hashtable)request["headers"])["range"];
else if (((Hashtable)request["headers"])["Range"] != null)
range = (string)((Hashtable)request["headers"])["Range"];
if (!String.IsNullOrEmpty(range)) // Mesh Asset LOD // Physics
{
// Range request
int start, end;
if (TryParseRange(range, out start, out end))
{
// Before clamping start make sure we can satisfy it in order to avoid
// sending back the last byte instead of an error status
if (start >= mesh.Data.Length)
{
responsedata["int_response_code"] = 404; //501; //410; //404;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["str_response_string"] = "This range doesnt exist.";
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 3;
return responsedata;
}
else
{
end = Utils.Clamp(end, 0, mesh.Data.Length - 1);
start = Utils.Clamp(start, 0, end);
int len = end - start + 1;
//m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
if (start > 20000)
{
responsedata["int_lod"] = 3;
}
else if (start < 4097)
{
responsedata["int_lod"] = 1;
}
else
{
responsedata["int_lod"] = 2;
}
if (start == 0 && len == mesh.Data.Length) // well redudante maybe
{
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.OK;
responsedata["bin_response_data"] = mesh.Data;
responsedata["int_bytes"] = mesh.Data.Length;
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 3;
}
else
{
responsedata["int_response_code"] =
(int)System.Net.HttpStatusCode.PartialContent;
headers["Content-Range"] = String.Format("bytes {0}-{1}/{2}", start, end,
mesh.Data.Length);
byte[] d = new byte[len];
Array.Copy(mesh.Data, start, d, 0, len);
responsedata["bin_response_data"] = d;
responsedata["int_bytes"] = len;
responsedata["reusecontext"] = false;
}
}
}
else
{
m_log.Warn("[GETMESH]: Failed to parse a range from GetMesh request, sending full asset: " + (string)request["uri"]);
responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data);
responsedata["content_type"] = "application/vnd.ll.mesh";
responsedata["int_response_code"] = 200;
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 3;
}
}
else
{
responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data);
responsedata["content_type"] = "application/vnd.ll.mesh";
responsedata["int_response_code"] = 200;
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 3;
}
}
// Optionally add additional mesh types here
else
{
responsedata["int_response_code"] = 404; //501; //410; //404;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["str_response_string"] = "Unfortunately, this asset isn't a mesh.";
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 1;
return responsedata;
}
}
else
{
responsedata["int_response_code"] = 404; //501; //410; //404;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["str_response_string"] = "Your Mesh wasn't found. Sorry!";
responsedata["reusecontext"] = false;
responsedata["int_lod"] = 0;
return responsedata;
}
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound;
responsedata["str_response_string"] = "Mesh not found.";
return responsedata;
}
if (mesh.Type != (SByte)AssetType.Mesh)
{
responsedata["str_response_string"] = "Asset isn't a mesh.";
return responsedata;
}
string range = String.Empty;
if (((Hashtable)request["headers"])["range"] != null)
range = (string)((Hashtable)request["headers"])["range"];
else if (((Hashtable)request["headers"])["Range"] != null)
range = (string)((Hashtable)request["headers"])["Range"];
responsedata["content_type"] = "application/vnd.ll.mesh";
if (String.IsNullOrEmpty(range))
{
// full mesh
responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data);
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.OK;
return responsedata;
}
// range request
int start, end;
if (Util.TryParseHttpRange(range, out start, out end))
{
// Before clamping start make sure we can satisfy it in order to avoid
// sending back the last byte instead of an error status
if (start >= mesh.Data.Length)
{
responsedata["str_response_string"] = "This range doesnt exist.";
return responsedata;
}
end = Utils.Clamp(end, 0, mesh.Data.Length - 1);
start = Utils.Clamp(start, 0, end);
int len = end - start + 1;
//m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
Hashtable headers = new Hashtable();
headers["Content-Range"] = String.Format("bytes {0}-{1}/{2}", start, end, mesh.Data.Length);
responsedata["headers"] = headers;
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.PartialContent;
byte[] d = new byte[len];
Array.Copy(mesh.Data, start, d, 0, len);
responsedata["bin_response_data"] = d;
responsedata["int_bytes"] = len;
return responsedata;
}
m_log.Warn("[GETMESH]: Failed to parse a range from GetMesh request, sending full asset: " + (string)request["uri"]);
responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data);
responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.OK;
return responsedata;
}
private bool TryParseRange(string header, out int start, out int end)
{
if (header.StartsWith("bytes="))
{
string[] rangeValues = header.Substring(6).Split('-');
if (rangeValues.Length == 2)
{
if (Int32.TryParse(rangeValues[0], out start) && Int32.TryParse(rangeValues[1], out end))
return true;
}
}
start = end = 0;
return false;
}
}
}

View File

@ -68,7 +68,7 @@ namespace OpenSim.Capabilities.Handlers
IRequestHandler reqHandler
= new RestHTTPHandler(
"GET",
"/CAPS/" + UUID.Random(),
"/" + UUID.Random(),
httpMethod => gmeshHandler.ProcessGetMesh(httpMethod, UUID.Zero, null),
"GetMesh",
null);

View File

@ -55,7 +55,7 @@ namespace OpenSim.Capabilities.Handlers
private IAssetService m_assetService;
public const string DefaultFormat = "x-j2c";
public GetTextureHandler(IAssetService assService)
{
m_assetService = assService;
@ -66,8 +66,6 @@ namespace OpenSim.Capabilities.Handlers
Hashtable ret = new Hashtable();
ret["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound;
ret["content_type"] = "text/plain";
ret["keepalive"] = false;
ret["reusecontext"] = false;
ret["int_bytes"] = 0;
string textureStr = (string)request["texture_id"];
string format = (string)request["format"];
@ -83,7 +81,7 @@ namespace OpenSim.Capabilities.Handlers
if (!String.IsNullOrEmpty(textureStr) && UUID.TryParse(textureStr, out textureID))
{
// m_log.DebugFormat("[GETTEXTURE]: Received request for texture id {0}", textureID);
string[] formats;
if (!string.IsNullOrEmpty(format))
{
@ -112,8 +110,6 @@ namespace OpenSim.Capabilities.Handlers
ret["error_status_text"] = "not found";
ret["str_response_string"] = "not found";
ret["content_type"] = "text/plain";
ret["keepalive"] = false;
ret["reusecontext"] = false;
ret["int_bytes"] = 0;
}
}
@ -129,7 +125,7 @@ namespace OpenSim.Capabilities.Handlers
}
/// <summary>
///
///
/// </summary>
/// <param name="httpRequest"></param>
/// <param name="httpResponse"></param>
@ -190,7 +186,7 @@ namespace OpenSim.Capabilities.Handlers
//response = new Hashtable();
//WriteTextureData(request,response,null,format);
// not found
//m_log.Warn("[GETTEXTURE]: Texture " + textureID + " not found");
@ -214,7 +210,7 @@ namespace OpenSim.Capabilities.Handlers
{
// Range request
int start, end;
if (TryParseRange(range, out start, out end))
if (Util.TryParseHttpRange(range, out start, out end))
{
// Before clamping start make sure we can satisfy it in order to avoid
// sending back the last byte instead of an error status
@ -253,24 +249,13 @@ namespace OpenSim.Capabilities.Handlers
// m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
response["content-type"] = texture.Metadata.ContentType;
response["int_response_code"] = (int)System.Net.HttpStatusCode.PartialContent;
headers["Content-Range"] = String.Format("bytes {0}-{1}/{2}", start, end, texture.Data.Length);
if (start == 0 && len == texture.Data.Length) // well redudante maybe
{
response["int_response_code"] = (int)System.Net.HttpStatusCode.OK;
response["bin_response_data"] = texture.Data;
response["int_bytes"] = texture.Data.Length;
}
else
{
response["int_response_code"] = (int)System.Net.HttpStatusCode.PartialContent;
headers["Content-Range"] = String.Format("bytes {0}-{1}/{2}", start, end, texture.Data.Length);
byte[] d = new byte[len];
Array.Copy(texture.Data, start, d, 0, len);
response["bin_response_data"] = d;
response["int_bytes"] = len;
}
// response.Body.Write(texture.Data, start, len);
byte[] d = new byte[len];
Array.Copy(texture.Data, start, d, 0, len);
response["bin_response_data"] = d;
response["int_bytes"] = len;
}
}
else
@ -287,7 +272,7 @@ namespace OpenSim.Capabilities.Handlers
response["content_type"] = texture.Metadata.ContentType;
else
response["content_type"] = "image/" + format;
response["bin_response_data"] = texture.Data;
response["int_bytes"] = texture.Data.Length;
@ -304,50 +289,6 @@ namespace OpenSim.Capabilities.Handlers
// texture.FullID, range, response.StatusCode, response.ContentLength, texture.Data.Length);
}
/// <summary>
/// Parse a range header.
/// </summary>
/// <remarks>
/// As per http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,
/// this obeys range headers with two values (e.g. 533-4165) and no second value (e.g. 533-).
/// Where there is no value, -1 is returned.
/// FIXME: Need to cover the case where only a second value is specified (e.g. -4165), probably by returning -1
/// for start.</remarks>
/// <returns></returns>
/// <param name='header'></param>
/// <param name='start'>Start of the range. Undefined if this was not a number.</param>
/// <param name='end'>End of the range. Will be -1 if no end specified. Undefined if there was a raw string but this was not a number.</param>
private bool TryParseRange(string header, out int start, out int end)
{
start = end = 0;
if (header.StartsWith("bytes="))
{
string[] rangeValues = header.Substring(6).Split('-');
if (rangeValues.Length == 2)
{
if (!Int32.TryParse(rangeValues[0], out start))
return false;
string rawEnd = rangeValues[1];
if (rawEnd == "")
{
end = -1;
return true;
}
else if (Int32.TryParse(rawEnd, out end))
{
return true;
}
}
}
start = end = 0;
return false;
}
private byte[] ConvertTextureData(AssetBase texture, string format)
{
m_log.DebugFormat("[GETTEXTURE]: Converting texture {0} to {1}", texture.ID, format);
@ -362,8 +303,6 @@ namespace OpenSim.Capabilities.Handlers
{
// Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular data
imgstream = new MemoryStream();
// Decode image to System.Drawing.Image
if (OpenJPEG.DecodeToImage(texture.Data, out managedImage, out image) && image != null)
{
@ -400,14 +339,11 @@ namespace OpenSim.Capabilities.Handlers
if (image != null)
image.Dispose();
if(managedImage != null)
managedImage.Clear();
if (imgstream != null)
{
imgstream.Close();
imgstream.Dispose();
}
}
return data;

View File

@ -24,7 +24,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Specialized;
@ -32,6 +32,7 @@ using System.Drawing;
using System.Drawing.Imaging;
using System.Reflection;
using System.IO;
using System.Net;
using System.Web;
using log4net;
using Nini.Config;
@ -44,7 +45,7 @@ using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class GetTextureRobustHandler : BaseStreamHandler
@ -52,9 +53,9 @@ namespace OpenSim.Capabilities.Handlers
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IAssetService m_assetService;
public const string DefaultFormat = "x-j2c";
// TODO: Change this to a config option
private string m_RedirectURL = null;
@ -66,27 +67,28 @@ namespace OpenSim.Capabilities.Handlers
if (m_RedirectURL != null && !m_RedirectURL.EndsWith("/"))
m_RedirectURL += "/";
}
protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
// Try to parse the texture ID from the request URL
NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
string textureStr = query.GetOne("texture_id");
string format = query.GetOne("format");
//m_log.DebugFormat("[GETTEXTURE]: called {0}", textureStr);
if (m_assetService == null)
{
m_log.Error("[GETTEXTURE]: Cannot fetch texture " + textureStr + " without an asset service");
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return null;
}
UUID textureID;
if (!String.IsNullOrEmpty(textureStr) && UUID.TryParse(textureStr, out textureID))
{
// m_log.DebugFormat("[GETTEXTURE]: Received request for texture id {0}", textureID);
string[] formats;
if (!string.IsNullOrEmpty(format))
{
@ -97,10 +99,10 @@ namespace OpenSim.Capabilities.Handlers
formats = WebUtil.GetPreferredImageTypes(httpRequest.Headers.Get("Accept"));
if (formats.Length == 0)
formats = new string[1] { DefaultFormat }; // default
}
// OK, we have an array with preferred formats, possibly with only one entry
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
foreach (string f in formats)
{
@ -112,14 +114,14 @@ namespace OpenSim.Capabilities.Handlers
{
m_log.Warn("[GETTEXTURE]: Failed to parse a texture_id from GetTexture request: " + httpRequest.Url);
}
// m_log.DebugFormat(
// "[GETTEXTURE]: For texture {0} sending back response {1}, data length {2}",
// textureID, httpResponse.StatusCode, httpResponse.ContentLength);
return null;
}
/// <summary>
///
/// </summary>
@ -130,94 +132,54 @@ namespace OpenSim.Capabilities.Handlers
/// <returns>False for "caller try another codec"; true otherwise</returns>
private bool FetchTexture(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse, UUID textureID, string format)
{
// m_log.DebugFormat("[GETTEXTURE]: {0} with requested format {1}", textureID, format);
AssetBase texture;
string fullID = textureID.ToString();
if (format != DefaultFormat)
fullID = fullID + "-" + format;
if (!String.IsNullOrEmpty(m_RedirectURL))
// m_log.DebugFormat("[GETTEXTURE]: {0} with requested format {1}", textureID, format);
if(!String.IsNullOrEmpty(m_RedirectURL))
{
// Only try to fetch locally cached textures. Misses are redirected
texture = m_assetService.GetCached(fullID);
if (texture != null)
string textureUrl = m_RedirectURL + "?texture_id=" + textureID.ToString();
m_log.Debug("[GETTEXTURE]: Redirecting texture request to " + textureUrl);
httpResponse.StatusCode = (int)HttpStatusCode.Moved;
httpResponse.AddHeader("Location:", textureUrl);
return true;
}
// Fetch, Misses or invalid return a 404
AssetBase texture = m_assetService.Get(textureID.ToString());
if (texture != null)
{
if (texture.Type != (sbyte)AssetType.Texture)
{
if (texture.Type != (sbyte)AssetType.Texture)
{
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
WriteTextureData(httpRequest, httpResponse, texture, format);
}
else
{
string textureUrl = m_RedirectURL + "?texture_id="+ textureID.ToString();
m_log.Debug("[GETTEXTURE]: Redirecting texture request to " + textureUrl);
httpResponse.StatusCode = (int)OSHttpStatusCode.RedirectMovedPermanently;
httpResponse.RedirectLocation = textureUrl;
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
}
else // no redirect
{
// try the cache
texture = m_assetService.GetCached(fullID);
if (texture == null)
if (format == DefaultFormat)
{
// m_log.DebugFormat("[GETTEXTURE]: texture was not in the cache");
// Fetch locally or remotely. Misses return a 404
texture = m_assetService.Get(textureID.ToString());
if (texture != null)
{
if (texture.Type != (sbyte)AssetType.Texture)
{
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
if (format == DefaultFormat)
{
WriteTextureData(httpRequest, httpResponse, texture, format);
return true;
}
else
{
AssetBase newTexture = new AssetBase(texture.ID + "-" + format, texture.Name, (sbyte)AssetType.Texture, texture.Metadata.CreatorID);
newTexture.Data = ConvertTextureData(texture, format);
if (newTexture.Data.Length == 0)
return false; // !!! Caller try another codec, please!
newTexture.Flags = AssetFlags.Collectable;
newTexture.Temporary = true;
newTexture.Local = true;
m_assetService.Store(newTexture);
WriteTextureData(httpRequest, httpResponse, newTexture, format);
return true;
}
}
}
else // it was on the cache
{
// m_log.DebugFormat("[GETTEXTURE]: texture was in the cache");
WriteTextureData(httpRequest, httpResponse, texture, format);
return true;
}
WriteTextureData(httpRequest, httpResponse, texture, format);
return true;
}
// need to convert format
AssetBase newTexture = new AssetBase(texture.ID + "-" + format, texture.Name, (sbyte)AssetType.Texture, texture.Metadata.CreatorID);
newTexture.Data = ConvertTextureData(texture, format);
if (newTexture.Data.Length == 0)
return false; // !!! Caller try another codec, please!
newTexture.Flags = AssetFlags.Collectable;
newTexture.Temporary = true;
newTexture.Local = true;
WriteTextureData(httpRequest, httpResponse, newTexture, format);
return true;
}
// not found
// m_log.Warn("[GETTEXTURE]: Texture " + textureID + " not found");
// m_log.Warn("[GETTEXTURE]: Texture " + textureID + " not found");
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
private void WriteTextureData(IOSHttpRequest request, IOSHttpResponse response, AssetBase texture, string format)
{
string range = request.Headers.GetOne("Range");
if (!String.IsNullOrEmpty(range)) // JP2's only
{
// Range request
@ -231,7 +193,7 @@ namespace OpenSim.Capabilities.Handlers
// m_log.DebugFormat(
// "[GETTEXTURE]: Client requested range for texture {0} starting at {1} but texture has end of {2}",
// texture.ID, start, texture.Data.Length);
// Stricly speaking, as per http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html, we should be sending back
// Requested Range Not Satisfiable (416) here. However, it appears that at least recent implementations
// of the Linden Lab viewer (3.2.1 and 3.3.4 and probably earlier), a viewer that has previously
@ -242,7 +204,7 @@ namespace OpenSim.Capabilities.Handlers
// level 2. If this estimate is greater than the total texture size, returning a RequestedRangeNotSatisfiable
// here will cause the viewer to treat the texture as bad and never display the full resolution
// However, if we return PartialContent (or OK) instead, the viewer will display that resolution.
// response.StatusCode = (int)System.Net.HttpStatusCode.RequestedRangeNotSatisfiable;
// response.AddHeader("Content-Range", String.Format("bytes */{0}", texture.Data.Length));
// response.StatusCode = (int)System.Net.HttpStatusCode.OK;
@ -255,13 +217,13 @@ namespace OpenSim.Capabilities.Handlers
// the rest of the entity.
if (end == -1)
end = int.MaxValue;
end = Utils.Clamp(end, 0, texture.Data.Length - 1);
start = Utils.Clamp(start, 0, end);
int len = end - start + 1;
// m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
// Always return PartialContent, even if the range covered the entire data length
// We were accidentally sending back 404 before in this situation
// https://issues.apache.org/bugzilla/show_bug.cgi?id=51878 supports sending 206 even if the
@ -273,12 +235,13 @@ namespace OpenSim.Capabilities.Handlers
// response.StatusCode = (int)System.Net.HttpStatusCode.OK;
// else
response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent;
response.ContentLength = len;
response.ContentType = texture.Metadata.ContentType;
response.AddHeader("Content-Range", String.Format("bytes {0}-{1}/{2}", start, end, texture.Data.Length));
response.Body.Write(texture.Data, start, len);
response.RawBuffer = texture.Data;
response.RawBufferStart = start;
response.RawBufferLen = len;
}
}
else
@ -296,19 +259,21 @@ namespace OpenSim.Capabilities.Handlers
response.ContentType = texture.Metadata.ContentType;
else
response.ContentType = "image/" + format;
response.Body.Write(texture.Data, 0, texture.Data.Length);
response.RawBuffer = texture.Data;
response.RawBufferStart = 0;
response.RawBufferLen = texture.Data.Length;
}
// if (response.StatusCode < 200 || response.StatusCode > 299)
// m_log.WarnFormat(
// "[GETTEXTURE]: For texture {0} requested range {1} responded {2} with content length {3} (actual {4})",
// texture.FullID, range, response.StatusCode, response.ContentLength, texture.Data.Length);
// else
// m_log.DebugFormat(
// "[GETTEXTURE]: For texture {0} requested range {1} responded {2} with content length {3} (actual {4})",
// texture.FullID, range, response.StatusCode, response.ContentLength, texture.Data.Length);
// if (response.StatusCode < 200 || response.StatusCode > 299)
// m_log.WarnFormat(
// "[GETTEXTURE]: For texture {0} requested range {1} responded {2} with content length {3} (actual {4})",
// texture.FullID, range, response.StatusCode, response.ContentLength, texture.Data.Length);
// else
// m_log.DebugFormat(
// "[GETTEXTURE]: For texture {0} requested range {1} responded {2} with content length {3} (actual {4})",
// texture.FullID, range, response.StatusCode, response.ContentLength, texture.Data.Length);
}
/// <summary>
/// Parse a range header.
/// </summary>
@ -325,18 +290,18 @@ namespace OpenSim.Capabilities.Handlers
private bool TryParseRange(string header, out int start, out int end)
{
start = end = 0;
if (header.StartsWith("bytes="))
{
string[] rangeValues = header.Substring(6).Split('-');
if (rangeValues.Length == 2)
{
if (!Int32.TryParse(rangeValues[0], out start))
return false;
string rawEnd = rangeValues[1];
if (rawEnd == "")
{
end = -1;
@ -348,27 +313,24 @@ namespace OpenSim.Capabilities.Handlers
}
}
}
start = end = 0;
return false;
}
private byte[] ConvertTextureData(AssetBase texture, string format)
{
m_log.DebugFormat("[GETTEXTURE]: Converting texture {0} to {1}", texture.ID, format);
byte[] data = new byte[0];
MemoryStream imgstream = new MemoryStream();
Bitmap mTexture = null;
ManagedImage managedImage = null;
Image image = null;
try
{
// Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular data
imgstream = new MemoryStream();
// Decode image to System.Drawing.Image
if (OpenJPEG.DecodeToImage(texture.Data, out managedImage, out image) && image != null)
{
@ -378,7 +340,7 @@ namespace OpenSim.Capabilities.Handlers
using(EncoderParameters myEncoderParameters = new EncoderParameters())
{
myEncoderParameters.Param[0] = new EncoderParameter(Encoder.Quality,95L);
// Save bitmap to stream
ImageCodecInfo codec = GetEncoderInfo("image/" + format);
if (codec != null)
@ -402,23 +364,20 @@ namespace OpenSim.Capabilities.Handlers
// If we encountered an exception, one or more of these will be null
if (mTexture != null)
mTexture.Dispose();
if (image != null)
image.Dispose();
if(managedImage != null)
managedImage.Clear();
if (imgstream != null)
{
imgstream.Close();
imgstream.Dispose();
}
}
return data;
}
// From msdn
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{

View File

@ -66,7 +66,7 @@ namespace OpenSim.Capabilities.Handlers
string rurl = serverConfig.GetString("GetTextureRedirectURL");
;
server.AddStreamHandler(
new GetTextureRobustHandler("/CAPS/GetTexture/", m_AssetService, "GetTexture", null, rurl));
new GetTextureRobustHandler("/CAPS/GetTexture", m_AssetService, "GetTexture", null, rurl));
}
}
}

View File

@ -2,7 +2,7 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Capabilities.Handlers")]
@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -1,188 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Drawing;
using System.Drawing.Imaging;
using System.Reflection;
using System.IO;
using System.Web;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenMetaverse.Imaging;
using OpenSim.Framework;
using OpenSim.Framework.Capabilities;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class UploadBakedTextureHandler
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Caps m_HostCapsObj;
private IAssetService m_assetService;
private bool m_persistBakedTextures;
public UploadBakedTextureHandler(Caps caps, IAssetService assetService, bool persistBakedTextures)
{
m_HostCapsObj = caps;
m_assetService = assetService;
m_persistBakedTextures = persistBakedTextures;
}
/// <summary>
/// Handle a request from the client for a Uri to upload a baked texture.
/// </summary>
/// <param name="request"></param>
/// <param name="path"></param>
/// <param name="param"></param>
/// <param name="httpRequest"></param>
/// <param name="httpResponse"></param>
/// <returns>The upload response if the request is successful, null otherwise.</returns>
public string UploadBakedTexture(
string request, string path, string param, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
try
{
string capsBase = "/CAPS/" + m_HostCapsObj.CapsObjectPath;
string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000");
BakedTextureUploader uploader =
new BakedTextureUploader(capsBase + uploaderPath, m_HostCapsObj.HttpListener, m_HostCapsObj.AgentID);
uploader.OnUpLoad += BakedTextureUploaded;
m_HostCapsObj.HttpListener.AddStreamHandler(
new BinaryStreamHandler(
"POST", capsBase + uploaderPath, uploader.uploaderCaps, "UploadBakedTexture", null));
string protocol = "http://";
if (m_HostCapsObj.SSLCaps)
protocol = "https://";
string uploaderURL = protocol + m_HostCapsObj.HostName + ":" +
m_HostCapsObj.Port.ToString() + capsBase + uploaderPath;
LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse();
uploadResponse.uploader = uploaderURL;
uploadResponse.state = "upload";
return LLSDHelpers.SerialiseLLSDReply(uploadResponse);
}
catch (Exception e)
{
m_log.ErrorFormat("[UPLOAD BAKED TEXTURE HANDLER]: {0}{1}", e.Message, e.StackTrace);
}
return null;
}
/// <summary>
/// Called when a baked texture has been successfully uploaded by a client.
/// </summary>
/// <param name="assetID"></param>
/// <param name="data"></param>
private void BakedTextureUploaded(UUID assetID, byte[] data)
{
m_log.DebugFormat("[UPLOAD BAKED TEXTURE HANDLER]: Received baked texture {0}", assetID.ToString());
AssetBase asset;
asset = new AssetBase(assetID, "Baked Texture", (sbyte)AssetType.Texture, m_HostCapsObj.AgentID.ToString());
asset.Data = data;
asset.Temporary = true;
asset.Local = !m_persistBakedTextures; // Local assets aren't persisted, non-local are
m_assetService.Store(asset);
}
}
class BakedTextureUploader
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public event Action<UUID, byte[]> OnUpLoad;
private string uploaderPath = String.Empty;
private UUID newAssetID;
private IHttpServer httpListener;
private UUID AgentId = UUID.Zero;
public BakedTextureUploader(string path, IHttpServer httpServer, UUID uUID)
{
newAssetID = UUID.Random();
uploaderPath = path;
httpListener = httpServer;
AgentId = uUID;
// m_log.InfoFormat("[CAPS] baked texture upload starting for {0}",newAssetID);
}
/// <summary>
/// Handle raw uploaded baked texture data.
/// </summary>
/// <param name="data"></param>
/// <param name="path"></param>
/// <param name="param"></param>
/// <returns></returns>
public string uploaderCaps(byte[] data, string path, string param)
{
Action<UUID, byte[]> handlerUpLoad = OnUpLoad;
// Don't do this asynchronously, otherwise it's possible for the client to send set appearance information
// on another thread which might send out avatar updates before the asset has been put into the asset
// service.
if (handlerUpLoad != null)
handlerUpLoad(newAssetID, data);
string res = String.Empty;
LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete();
uploadComplete.new_asset = newAssetID.ToString();
uploadComplete.new_inventory_item = UUID.Zero;
uploadComplete.state = "complete";
res = LLSDHelpers.SerialiseLLSDReply(uploadComplete);
httpListener.RemoveStreamHandler("POST", uploaderPath);
// m_log.DebugFormat("[BAKED TEXTURE UPLOADER]: baked texture upload completed for {0}", newAssetID);
return res;
}
}
}

View File

@ -1,76 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
using OpenMetaverse;
namespace OpenSim.Capabilities.Handlers
{
public class UploadBakedTextureServerConnector : ServiceConnector
{
private IAssetService m_AssetService;
private string m_ConfigName = "CapsService";
public UploadBakedTextureServerConnector(IConfigSource config, IHttpServer server, string configName) :
base(config, server, configName)
{
if (configName != String.Empty)
m_ConfigName = configName;
IConfig serverConfig = config.Configs[m_ConfigName];
if (serverConfig == null)
throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName));
string assetService = serverConfig.GetString("AssetService", String.Empty);
if (assetService == String.Empty)
throw new Exception("No AssetService in config file");
Object[] args = new Object[] { config };
m_AssetService =
ServerUtils.LoadPlugin<IAssetService>(assetService, args);
if (m_AssetService == null)
throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName));
// NEED TO FIX THIS
OpenSim.Framework.Capabilities.Caps caps = new OpenSim.Framework.Capabilities.Caps(server, "", server.Port, "", UUID.Zero, "");
server.AddStreamHandler(new RestStreamHandler(
"POST",
"/CAPS/UploadBakedTexture/",
new UploadBakedTextureHandler(caps, m_AssetService, true).UploadBakedTexture,
"UploadBakedTexture",
"Upload Baked Texture Capability"));
}
}
}

View File

@ -107,17 +107,17 @@ namespace OpenSim.Framework.Capabilities
/// <returns></returns>
public static byte[] LLSDSerialize(object obj)
{
StringWriter sw = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(sw);
writer.Formatting = Formatting.None;
using(StringWriter sw = new StringWriter())
using(XmlTextWriter writer = new XmlTextWriter(sw))
{
writer.Formatting = Formatting.None;
writer.WriteStartElement(String.Empty, "llsd", String.Empty);
LLSDWriteOne(writer, obj);
writer.WriteEndElement();
writer.Close();
return Util.UTF8.GetBytes(sw.ToString());
writer.WriteStartElement(String.Empty, "llsd", String.Empty);
LLSDWriteOne(writer, obj);
writer.WriteEndElement();
writer.Flush();
return Util.UTF8.GetBytes(sw.ToString());
}
}
/// <summary>
@ -566,7 +566,7 @@ namespace OpenSim.Framework.Capabilities
endPos = FindEnd(llsd, 1);
if (Double.TryParse(llsd.Substring(1, endPos - 1), NumberStyles.Float,
Utils.EnUsCulture.NumberFormat, out value))
Culture.NumberFormatInfo, out value))
return value;
else
throw new LLSDParseException("Failed to parse double value type");

View File

@ -78,7 +78,7 @@ namespace OpenSim.Framework.Capabilities
public string state;
public int upload_price;
public string rsvp;
public LLSDNewFileAngentInventoryVariablePriceReplyResponse()
{
state = "confirm_upload";

View File

@ -42,7 +42,7 @@ namespace OpenSim.Framework.Capabilities
{
public string username;
public string display_name;
//'display_name_next_update':d"1970-01-01T00:00:00Z"
//'display_name_next_update':d"1970-01-01T00:00:00Z"
public string legacy_first_name;
public string legacy_last_name;
public UUID id;

View File

@ -1,68 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using OpenMetaverse;
namespace OpenSim.Framework.Capabilities
{
[OSDMap]
public class LLSDEnvironmentRequest
{
public UUID messageID;
public UUID regionID;
}
[OSDMap]
public class LLSDEnvironmentSetResponse
{
public UUID regionID;
public UUID messageID;
public Boolean success;
public String fail_reason;
}
public class EnvironmentSettings
{
/// <summary>
/// generates a empty llsd settings response for viewer
/// </summary>
/// <param name="messageID">the message UUID</param>
/// <param name="regionID">the region UUID</param>
public static string EmptySettings(UUID messageID, UUID regionID)
{
OSDArray arr = new OSDArray();
LLSDEnvironmentRequest msg = new LLSDEnvironmentRequest();
msg.messageID = messageID;
msg.regionID = regionID;
arr.Array.Add(msg);
return LLSDHelpers.SerialiseLLSDReply(arr);
}
}
}

View File

@ -30,6 +30,7 @@ using System.Collections;
using System.IO;
using System.Reflection;
using System.Xml;
using OpenMetaverse;
namespace OpenSim.Framework.Capabilities
{
@ -40,17 +41,32 @@ namespace OpenSim.Framework.Capabilities
public static string SerialiseLLSDReply(object obj)
{
StringWriter sw = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(sw);
writer.Formatting = Formatting.None;
writer.WriteStartElement(String.Empty, "llsd", String.Empty);
SerializeOSDType(writer, obj);
writer.WriteEndElement();
writer.Close();
using(StringWriter sw = new StringWriter())
using(XmlTextWriter writer = new XmlTextWriter(sw))
{
writer.Formatting = Formatting.None;
writer.WriteStartElement(String.Empty, "llsd", String.Empty);
SerializeOSDType(writer, obj);
writer.WriteEndElement();
writer.Flush();
//m_log.DebugFormat("[LLSD Helpers]: Generated serialized LLSD reply {0}", sw.ToString());
return sw.ToString();
return sw.ToString();
}
}
public static string SerialiseLLSDReplyNoHeader(object obj)
{
using(StringWriter sw = new StringWriter())
using(XmlTextWriter writer = new XmlTextWriter(sw))
{
writer.Formatting = Formatting.None;
SerializeOSDType(writer, obj);
writer.Flush();
//m_log.DebugFormat("[LLSD Helpers]: Generated serialized LLSD reply {0}", sw.ToString());
return sw.ToString();
}
}
private static void SerializeOSDType(XmlTextWriter writer, object obj)
@ -157,6 +173,22 @@ namespace OpenSim.Framework.Capabilities
// the LLSD map/array types in the array need to be deserialised
// but first we need to know the right class to deserialise them into.
}
else if(enumerator.Value is Boolean && field.FieldType == typeof(int) )
{
int i = (bool)enumerator.Value ? 1 : 0;
field.SetValue(obj, i);
}
else if(field.FieldType == typeof(bool) && enumerator.Value is int)
{
bool b = (int)enumerator.Value != 0;
field.SetValue(obj, b);
}
else if(field.FieldType == typeof(UUID) && enumerator.Value is string)
{
UUID u;
UUID.TryParse((string)enumerator.Value, out u);
field.SetValue(obj, u);
}
else
{
field.SetValue(obj, enumerator.Value);

View File

@ -37,5 +37,6 @@ namespace OpenSim.Framework.Capabilities
public string name;
public int type;
public int preferred_type;
public int version;
}
}

View File

@ -87,12 +87,12 @@ namespace OpenSim.Framework.Capabilities
[OSDMap]
public class LLSDInventoryFolderContents
{
public UUID agent_id;
public UUID agent_id;
public int descendents;
public UUID folder_id;
public UUID folder_id;
public OSDArray categories = new OSDArray();
public OSDArray items = new OSDArray();
public UUID owner_id;
public UUID owner_id;
public int version;
}

View File

@ -1,51 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using System.Collections;
namespace OpenSim.Framework.Capabilities
{
[OSDMap]
public class LLSDParcelVoiceInfoResponse
{
public int parcel_local_id;
public string region_name;
public Hashtable voice_credentials;
public LLSDParcelVoiceInfoResponse()
{
}
public LLSDParcelVoiceInfoResponse(string region, int localID, Hashtable creds)
{
region_name = region;
parcel_local_id = localID;
voice_credentials = creds;
}
}
}

View File

@ -1,42 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using OpenMetaverse;
namespace OpenSim.Framework.Capabilities
{
[LLSDType("MAP")]
public class LLSDRemoteParcelResponse
{
public UUID parcel_id;
public LLSDRemoteParcelResponse()
{
}
}
}

View File

@ -1,50 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using OpenMetaverse;
namespace OpenSim.Framework.Capabilities
{
[OSDMap]
public class LLSDTaskScriptUpdate
{
/// <summary>
/// The item containing the script to update
/// </summary>
public UUID item_id;
/// <summary>
/// The task containing the script
/// </summary>
public UUID task_id;
/// <summary>
/// Signals whether the script is currently active
/// </summary>
public int is_script_running;
}
}

View File

@ -1,57 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
namespace OpenSim.Framework.Capabilities
{
[OSDMap]
public class LLSDVoiceAccountResponse
{
public string username;
public string password;
public string voice_sip_uri_hostname;
public string voice_account_server_name;
public LLSDVoiceAccountResponse()
{
}
public LLSDVoiceAccountResponse(string user, string pass)
{
username = user;
password = pass;
}
public LLSDVoiceAccountResponse(string user, string pass, string sipUriHost, string accountServer)
{
username = user;
password = pass;
voice_sip_uri_hostname = sipUriHost;
voice_account_server_name = accountServer;
}
}
}

View File

@ -2,7 +2,7 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Capabilities")]
@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -80,7 +80,7 @@ namespace OpenSim.ConsoleClient
while (m_Server.Running)
{
System.Threading.Thread.Sleep(500);
// MainConsole.Instance.Prompt();
MainConsole.Instance.Prompt();
}
if (pidFile != String.Empty)
@ -178,7 +178,7 @@ namespace OpenSim.ConsoleClient
Requester.MakeRequest(requestUrl, requestData, ReadResponses);
return;
}
List<string> lines = new List<string>();
foreach (XmlNode part in rootNodeL[0].ChildNodes)
@ -202,7 +202,7 @@ namespace OpenSim.ConsoleClient
string[] parts = l.Split(new char[] {':'}, 3);
if (parts.Length != 3)
continue;
if (parts[2].StartsWith("+++") || parts[2].StartsWith("-++"))
prompt = parts[2];
else

View File

@ -2,7 +2,7 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.ConsoleClient")]
@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Minor Version
// Build Number
// Revision
//

View File

@ -38,7 +38,7 @@ namespace OpenSim.Data
/// <summary>This function converts a value returned from the database in one of the
/// supported formats into a UUID. This function is not actually DBMS-specific right
/// now
///
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
@ -47,24 +47,25 @@ namespace OpenSim.Data
if ((id == null) || (id == DBNull.Value))
return UUID.Zero;
if (id.GetType() == typeof(Guid))
Type idtype = id.GetType();
if (idtype == typeof(Guid))
return new UUID((Guid)id);
if (id.GetType() == typeof(byte[]))
if (id.GetType() == typeof(string))
{
if (((byte[])id).Length == 0)
return UUID.Zero;
else if (((byte[])id).Length == 16)
return new UUID((byte[])id, 0);
}
else if (id.GetType() == typeof(string))
{
if (((string)id).Length == 0)
return UUID.Zero;
else if (((string)id).Length == 36)
return new UUID((string)id);
Guid gg;
if (Guid.TryParse((string)id, out gg))
return new UUID(gg);
return UUID.Zero;
}
if (idtype == typeof(byte[]))
{
if (((byte[])id).Length < 16)
return UUID.Zero;
return new UUID((byte[])id, 0);
}
throw new Exception("Failed to convert db value to UUID: " + id.ToString());
}
}

View File

@ -39,7 +39,7 @@ namespace OpenSim.Data
public Dictionary<string, string> Data;
}
public interface IAvatarData
public interface IAvatarData
{
AvatarBaseData[] Get(string field, string val);
bool Store(AvatarBaseData data);

View File

@ -46,14 +46,14 @@ namespace OpenSim.Data
/// <param name="create">If true, then an estate is created if one is not found.</param>
/// <returns></returns>
EstateSettings LoadEstateSettings(UUID regionID, bool create);
/// <summary>
/// Load estate settings for an estate ID.
/// </summary>
/// <param name="estateID"></param>
/// <returns></returns>
EstateSettings LoadEstateSettings(int estateID);
/// <summary>
/// Create a new estate.
/// </summary>
@ -67,7 +67,7 @@ namespace OpenSim.Data
/// </summary>
/// <returns>An empty list if no estates were found.</returns>
List<EstateSettings> LoadEstateSettingsAll();
/// <summary>
/// Store estate settings.
/// </summary>
@ -75,7 +75,7 @@ namespace OpenSim.Data
/// This is also called by EstateSettings.Save()</remarks>
/// <param name="es"></param>
void StoreEstateSettings(EstateSettings es);
/// <summary>
/// Get estate IDs.
/// </summary>
@ -88,13 +88,13 @@ namespace OpenSim.Data
/// </summary>
/// <returns>An empty list if no estates were found.</returns>
List<int> GetEstatesByOwner(UUID ownerID);
/// <summary>
/// Get the IDs of all estates.
/// </summary>
/// <returns>An empty list if no estates were found.</returns>
List<int> GetEstatesAll();
/// <summary>
/// Link a region to an estate.
/// </summary>
@ -102,14 +102,14 @@ namespace OpenSim.Data
/// <param name="estateID"></param>
/// <returns>true if the link succeeded, false otherwise</returns>
bool LinkRegion(UUID regionID, int estateID);
/// <summary>
/// Get the UUIDs of all the regions in an estate.
/// </summary>
/// <param name="estateID"></param>
/// <returns></returns>
List<UUID> GetRegions(int estateID);
/// <summary>
/// Delete an estate
/// </summary>

View File

@ -47,7 +47,7 @@ namespace OpenSim.Data
/// <summary>
/// An interface for connecting to the user grid datastore
/// </summary>
public interface IGridUserData
public interface IGridUserData
{
GridUserData Get(string userID);
GridUserData[] GetAll(string query);

View File

@ -81,7 +81,7 @@ namespace OpenSim.Data
}
public interface IGroupsData
public interface IGroupsData
{
// groups table
bool StoreGroup(GroupData data);

View File

@ -48,7 +48,7 @@ namespace OpenSim.Data
/// <summary>
/// An interface for connecting to the user grid datastore
/// </summary>
public interface IHGTravelingData
public interface IHGTravelingData
{
HGTravelingData Get(UUID sessionID);
HGTravelingData[] GetSessions(UUID userID);

View File

@ -27,16 +27,18 @@
using System;
using System.Collections.Generic;
using OpenMetaverse;
using OpenSim.Framework;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule.Object
namespace OpenSim.Data
{
/// <summary>
/// This implements the methods neccesary to operate on the inventory of an object
/// <summary>
/// An interface for connecting to the Mute List datastore
/// </summary>
public interface IObjectInventory : IDictionary<UUID, IInventoryItem>
public interface IMuteListData
{
IInventoryItem this[string name] { get; }
bool Store(MuteData data);
MuteData[] Get(UUID agentID);
bool Delete(UUID agentID, UUID muteID, string muteName);
}
}

View File

@ -39,7 +39,7 @@ namespace OpenSim.Data
}
public interface IOfflineIMData
public interface IOfflineIMData
{
OfflineIMData[] Get(string field, string val);
long GetCount(string field, string key);

View File

@ -44,7 +44,7 @@ namespace OpenSim.Data
/// <summary>
/// An interface for connecting to the presence datastore
/// </summary>
public interface IPresenceData
public interface IPresenceData
{
bool Store(PresenceData data);

View File

@ -67,10 +67,12 @@ namespace OpenSim.Data
/// <summary>
/// An interface for connecting to the authentication datastore
/// </summary>
public interface IRegionData
public interface IRegionData
{
RegionData Get(UUID regionID, UUID ScopeID);
List<RegionData> Get(string regionName, UUID ScopeID);
RegionData GetSpecific(string regionName, UUID ScopeID);
RegionData Get(int x, int y, UUID ScopeID);
List<RegionData> Get(int xStart, int yStart, int xEnd, int yEnd, UUID ScopeID);

View File

@ -38,12 +38,12 @@ namespace OpenSim.Data
public UUID ownerRoleID;
public string name;
public string charter;
public bool showInList;
public UUID insigniaID;
public bool showInList;
public UUID insigniaID;
public int membershipFee;
public bool openEnrollment;
public bool allowPublish;
public bool maturePublish;
public bool maturePublish;
public UUID founderID;
public ulong everyonePowers;
public ulong ownersPowers;

View File

@ -80,10 +80,10 @@ namespace OpenSim.Data
/// <summary>Have the parameterless constructor just so we can specify it as a generic parameter with the new() constraint.
/// Currently this is only used in the tests. A Migration instance created this way must be then
/// initialized with Initialize(). Regular creation should be through the parameterized constructors.
/// initialized with Initialize(). Regular creation should be through the parameterized constructors.
/// </summary>
public Migration()
{
{
}
public Migration(DbConnection conn, Assembly assem, string subtype, string type)
@ -91,7 +91,7 @@ namespace OpenSim.Data
Initialize(conn, assem, type, subtype);
}
public Migration(DbConnection conn, Assembly assem, string type)
public Migration(DbConnection conn, Assembly assem, string type)
{
Initialize(conn, assem, type, "");
}
@ -191,7 +191,7 @@ namespace OpenSim.Data
int newversion = kvp.Key;
// we need to up the command timeout to infinite as we might be doing long migrations.
/* [AlexRa 01-May-10]: We can't always just run any SQL in a single batch (= ExecuteNonQuery()). Things like
/* [AlexRa 01-May-10]: We can't always just run any SQL in a single batch (= ExecuteNonQuery()). Things like
* stored proc definitions might have to be sent to the server each in a separate batch.
* This is certainly so for MS SQL; not sure how the MySQL connector sorts out the mess
* with 'delimiter @@'/'delimiter ;' around procs. So each "script" this code executes now is not
@ -276,7 +276,7 @@ namespace OpenSim.Data
private delegate void FlushProc();
/// <summary>Scans for migration resources in either old-style "scattered" (one file per version)
/// or new-style "integrated" format (single file with ":VERSION nnn" sections).
/// or new-style "integrated" format (single file with ":VERSION nnn" sections).
/// In the new-style migrations it also recognizes ':GO' separators for parts of the SQL script
/// that must be sent to the server separately. The old-style migrations are loaded each in one piece
/// and don't support the ':GO' feature.
@ -301,12 +301,12 @@ namespace OpenSim.Data
{
/* The filename should be '<StoreName>.migrations[.NNN]' where NNN
* is the last version number defined in the file. If the '.NNN' part is recognized, the code can skip
* the file without looking inside if we have a higher version already. Without the suffix we read
* the file without looking inside if we have a higher version already. Without the suffix we read
* the file anyway and use the version numbers inside. Any unrecognized suffix (such as '.sql')
* is valid but ignored.
*
* NOTE that we expect only one 'merged' migration file. If there are several, we take the last one.
* If you are numbering them, leave only the latest one in the project or at least make sure they numbered
*
* NOTE that we expect only one 'merged' migration file. If there are several, we take the last one.
* If you are numbering them, leave only the latest one in the project or at least make sure they numbered
* to come up in the correct order (e.g. 'SomeStore.migrations.001' rather than 'SomeStore.migrations.1')
*/
@ -351,7 +351,7 @@ namespace OpenSim.Data
if (sLine.Trim().Equals(":GO", StringComparison.InvariantCultureIgnoreCase))
{
if (sb.Length == 0) continue;
if (nVersion > after)
if (nVersion > after)
script.Add(sb.ToString());
sb.Length = 0;
continue;
@ -405,10 +405,10 @@ scan_old_style:
}
}
}
if (migrations.Count < 1)
if (migrations.Count < 1)
m_log.DebugFormat("[MIGRATIONS]: {0} data tables already up to date at revision {1}", _type, after);
return migrations;
}
}

View File

@ -75,6 +75,7 @@ namespace OpenSim.Data.MySQL
dbcon.Open();
Migration m = new Migration(dbcon, Assembly, "AssetStore");
m.Update();
dbcon.Close();
}
}
@ -144,6 +145,7 @@ namespace OpenSim.Data.MySQL
string.Format("[ASSETS DB]: MySql failure fetching asset {0}. Exception ", assetID), e);
}
}
dbcon.Close();
}
return asset;
@ -156,28 +158,27 @@ namespace OpenSim.Data.MySQL
/// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks>
override public bool StoreAsset(AssetBase asset)
{
string assetName = asset.Name;
if (asset.Name.Length > AssetBase.MAX_ASSET_NAME)
{
assetName = asset.Name.Substring(0, AssetBase.MAX_ASSET_NAME);
m_log.WarnFormat(
"[ASSET DB]: Name '{0}' for asset {1} truncated from {2} to {3} characters on add",
asset.Name, asset.ID, asset.Name.Length, assetName.Length);
}
string assetDescription = asset.Description;
if (asset.Description.Length > AssetBase.MAX_ASSET_DESC)
{
assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC);
m_log.WarnFormat(
"[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add",
asset.Description, asset.ID, asset.Description.Length, assetDescription.Length);
}
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
string assetName = asset.Name;
if (asset.Name.Length > AssetBase.MAX_ASSET_NAME)
{
assetName = asset.Name.Substring(0, AssetBase.MAX_ASSET_NAME);
m_log.WarnFormat(
"[ASSET DB]: Name '{0}' for asset {1} truncated from {2} to {3} characters on add",
asset.Name, asset.ID, asset.Name.Length, assetName.Length);
}
string assetDescription = asset.Description;
if (asset.Description.Length > AssetBase.MAX_ASSET_DESC)
{
assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC);
m_log.WarnFormat(
"[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add",
asset.Description, asset.ID, asset.Description.Length, assetDescription.Length);
}
using (MySqlCommand cmd =
new MySqlCommand(
"replace INTO assets(id, name, description, assetType, local, temporary, create_time, access_time, asset_flags, CreatorID, data)" +
@ -200,15 +201,17 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags);
cmd.Parameters.AddWithValue("?data", asset.Data);
cmd.ExecuteNonQuery();
dbcon.Close();
return true;
}
catch (Exception e)
{
m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}",
asset.FullID, asset.Name, e.Message);
dbcon.Close();
return false;
}
}
}
}
}
@ -238,6 +241,7 @@ namespace OpenSim.Data.MySQL
e);
}
}
dbcon.Close();
}
}
@ -270,6 +274,7 @@ namespace OpenSim.Data.MySQL
}
}
}
dbcon.Close();
}
bool[] results = new bool[uuids.Length];
@ -329,11 +334,12 @@ namespace OpenSim.Data.MySQL
{
m_log.Error(
string.Format(
"[ASSETS DB]: MySql failure fetching asset set from {0}, count {1}. Exception ",
start, count),
"[ASSETS DB]: MySql failure fetching asset set from {0}, count {1}. Exception ",
start, count),
e);
}
}
dbcon.Close();
}
return retList;
@ -350,6 +356,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("?id", id);
cmd.ExecuteNonQuery();
}
dbcon.Close();
}
return true;

View File

@ -59,6 +59,7 @@ namespace OpenSim.Data.MySQL
dbcon.Open();
Migration m = new Migration(dbcon, Assembly, "AuthStore");
m.Update();
dbcon.Close();
}
}
@ -76,27 +77,30 @@ namespace OpenSim.Data.MySQL
{
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
IDataReader result = cmd.ExecuteReader();
if (result.Read())
using(IDataReader result = cmd.ExecuteReader())
{
ret.PrincipalID = principalID;
CheckColumnNames(result);
foreach (string s in m_ColumnNames)
if(result.Read())
{
if (s == "UUID")
continue;
ret.Data[s] = result[s].ToString();
ret.PrincipalID = principalID;
CheckColumnNames(result);
foreach(string s in m_ColumnNames)
{
if(s == "UUID")
continue;
ret.Data[s] = result[s].ToString();
}
dbcon.Close();
return ret;
}
else
{
dbcon.Close();
return null;
}
return ret;
}
else
{
return null;
}
}
}
@ -132,25 +136,25 @@ namespace OpenSim.Data.MySQL
if (!first)
update += ", ";
update += "`" + field + "` = ?"+field;
first = false;
cmd.Parameters.AddWithValue("?"+field, data.Data[field]);
}
update += " where UUID = ?principalID";
cmd.CommandText = update;
cmd.Parameters.AddWithValue("?principalID", data.PrincipalID.ToString());
if (ExecuteNonQuery(cmd) < 1)
{
string insert = "insert into `" + m_Realm + "` (`UUID`, `" +
String.Join("`, `", fields) +
"`) values (?principalID, ?" + String.Join(", ?", fields) + ")";
cmd.CommandText = insert;
if (ExecuteNonQuery(cmd) < 1)
return false;
}
@ -166,7 +170,7 @@ namespace OpenSim.Data.MySQL
{
cmd.Parameters.AddWithValue("?"+item, value);
cmd.Parameters.AddWithValue("?UUID", principalID.ToString());
if (ExecuteNonQuery(cmd) > 0)
return true;
}
@ -186,7 +190,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("?principalID", principalID.ToString());
cmd.Parameters.AddWithValue("?token", token);
cmd.Parameters.AddWithValue("?lifetime", lifetime.ToString());
if (ExecuteNonQuery(cmd) > 0)
return true;
}

View File

@ -57,7 +57,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = ?PrincipalID and `Name` = ?Name", m_Realm);
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
cmd.Parameters.AddWithValue("?Name", name);
if (ExecuteNonQuery(cmd) > 0)
return true;
}

View File

@ -82,6 +82,7 @@ namespace OpenSim.Data.MySQL
Migration m = new Migration(dbcon, Assembly, "EstateStore");
m.Update();
dbcon.Close();
Type t = typeof(EstateSettings);
m_Fields = t.GetFields(BindingFlags.NonPublic |
@ -143,7 +144,6 @@ namespace OpenSim.Data.MySQL
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
cmd.Connection = dbcon;
bool found = false;
@ -171,6 +171,8 @@ namespace OpenSim.Data.MySQL
}
}
}
dbcon.Close();
cmd.Connection = null;
if (!found && create)
{
@ -231,6 +233,7 @@ namespace OpenSim.Data.MySQL
es.Save();
}
dbcon.Close();
}
}
@ -263,6 +266,7 @@ namespace OpenSim.Data.MySQL
cmd.ExecuteNonQuery();
}
dbcon.Close();
}
SaveBanList(es);
@ -281,7 +285,7 @@ namespace OpenSim.Data.MySQL
using (MySqlCommand cmd = dbcon.CreateCommand())
{
cmd.CommandText = "select bannedUUID from estateban where EstateID = ?EstateID";
cmd.CommandText = "select * from estateban where EstateID = ?EstateID";
cmd.Parameters.AddWithValue("?EstateID", es.EstateID);
using (IDataReader r = cmd.ExecuteReader())
@ -289,17 +293,16 @@ namespace OpenSim.Data.MySQL
while (r.Read())
{
EstateBan eb = new EstateBan();
UUID uuid = new UUID();
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
eb.BannedUserID = uuid;
eb.BannedUserID = DBGuid.FromDB(r["bannedUUID"]); ;
eb.BannedHostAddress = "0.0.0.0";
eb.BannedHostIPMask = "0.0.0.0";
eb.BanningUserID = DBGuid.FromDB(r["banningUUID"]);
eb.BanTime = Convert.ToInt32(r["banTime"]);
es.AddBan(eb);
}
}
}
dbcon.Close();
}
}
@ -318,17 +321,20 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.Clear();
cmd.CommandText = "insert into estateban (EstateID, bannedUUID, bannedIp, bannedIpHostMask, bannedNameMask) values ( ?EstateID, ?bannedUUID, '', '', '' )";
cmd.CommandText = "insert into estateban (EstateID, bannedUUID, bannedIp, bannedIpHostMask, bannedNameMask, banningUUID, banTime) values ( ?EstateID, ?bannedUUID, '', '', '', ?banningUUID, ?banTime)";
foreach (EstateBan b in es.EstateBans)
{
cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString());
cmd.Parameters.AddWithValue("?bannedUUID", b.BannedUserID.ToString());
cmd.Parameters.AddWithValue("?banningUUID", b.BanningUserID.ToString());
cmd.Parameters.AddWithValue("?banTime", b.BanTime);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
}
dbcon.Close();
}
}
@ -358,6 +364,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.Clear();
}
}
dbcon.Close();
}
}
@ -383,6 +390,7 @@ namespace OpenSim.Data.MySQL
}
}
}
dbcon.Close();
}
return uuids.ToArray();
@ -403,19 +411,19 @@ namespace OpenSim.Data.MySQL
return e;
}
}
public List<EstateSettings> LoadEstateSettingsAll()
{
List<EstateSettings> allEstateSettings = new List<EstateSettings>();
List<EstateSettings> allEstateSettings = new List<EstateSettings>();
List<int> allEstateIds = GetEstatesAll();
foreach (int estateId in allEstateIds)
allEstateSettings.Add(LoadEstateSettings(estateId));
return allEstateSettings;
}
public List<int> GetEstatesAll()
{
List<int> result = new List<int>();
@ -437,11 +445,10 @@ namespace OpenSim.Data.MySQL
reader.Close();
}
}
dbcon.Close();
}
return result;
return result;
}
public List<int> GetEstates(string search)
@ -466,7 +473,6 @@ namespace OpenSim.Data.MySQL
reader.Close();
}
}
dbcon.Close();
}

View File

@ -54,7 +54,7 @@ namespace OpenSim.Data.MySQL
{
get { return GetType().Assembly; }
}
public MySQLFSAssetData()
{
}
@ -78,6 +78,7 @@ namespace OpenSim.Data.MySQL
conn.Open();
Migration m = new Migration(conn, Assembly, "FSAssetStore");
m.Update();
conn.Close();
}
}
catch (MySqlException e)
@ -121,9 +122,13 @@ namespace OpenSim.Data.MySQL
}
catch (MySqlException e)
{
cmd.Connection = null;
conn.Close();
m_log.ErrorFormat("[FSASSETS]: Query {0} failed with {1}", cmd.CommandText, e.ToString());
return false;
}
conn.Close();
cmd.Connection = null;
}
return true;
@ -175,7 +180,7 @@ namespace OpenSim.Data.MySQL
UpdateAccessTime(id, AccessTime);
}
}
conn.Close();
}
return meta;
@ -206,6 +211,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("?id", AssetID);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
@ -221,7 +227,8 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("?id", meta.ID);
cmd.Parameters.AddWithValue("?name", meta.Name);
cmd.Parameters.AddWithValue("?description", meta.Description);
cmd.Parameters.AddWithValue("?type", meta.Type.ToString());
// cmd.Parameters.AddWithValue("?type", meta.Type.ToString());
cmd.Parameters.AddWithValue("?type", meta.Type);
cmd.Parameters.AddWithValue("?hash", hash);
cmd.Parameters.AddWithValue("?asset_flags", meta.Flags);
@ -239,7 +246,12 @@ namespace OpenSim.Data.MySQL
//ExecuteNonQuery(cmd);
}
return false;
// return false;
// if the asset already exits
// assume it was already correctly stored
// or regions will keep retry.
return true;
}
catch(Exception e)
{
@ -293,6 +305,7 @@ namespace OpenSim.Data.MySQL
}
}
}
conn.Close();
}
for (int i = 0; i < uuids.Length; i++)
@ -327,6 +340,7 @@ namespace OpenSim.Data.MySQL
count = Convert.ToInt32(reader["count"]);
}
}
conn.Close();
}
return count;
@ -407,8 +421,8 @@ namespace OpenSim.Data.MySQL
imported++;
}
}
}
importConn.Close();
}
MainConsole.Instance.Output(String.Format("Import done, {0} assets imported", imported));

View File

@ -36,7 +36,7 @@ using MySql.Data.MySqlClient;
namespace OpenSim.Data.MySQL
{
/// <summary>
/// A database interface class to a user profile storage system
/// Common code for a number of database modules
/// </summary>
public class MySqlFramework
{
@ -44,14 +44,24 @@ namespace OpenSim.Data.MySQL
log4net.LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
protected string m_connectionString;
protected object m_dbLock = new object();
protected string m_connectionString = String.Empty;
protected MySqlTransaction m_trans = null;
// Constructor using a connection string. Instances constructed
// this way will open a new connection for each call.
protected MySqlFramework(string connectionString)
{
m_connectionString = connectionString;
}
// Constructor using a connection object. Instances constructed
// this way will use the connection object and never create
// new connections.
protected MySqlFramework(MySqlTransaction trans)
{
m_trans = trans;
}
//////////////////////////////////////////////////////////////
//
// All non queries are funneled through one connection
@ -59,33 +69,53 @@ namespace OpenSim.Data.MySQL
//
protected int ExecuteNonQuery(MySqlCommand cmd)
{
lock (m_dbLock)
if (m_trans == null)
{
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
try
{
dbcon.Open();
cmd.Connection = dbcon;
try
{
return cmd.ExecuteNonQuery();
}
catch (Exception e)
{
m_log.Error(e.Message, e);
m_log.Error(Environment.StackTrace.ToString());
return 0;
}
}
catch (Exception e)
{
m_log.Error(e.Message, e);
return 0;
}
dbcon.Open();
int ret = ExecuteNonQueryWithConnection(cmd, dbcon);
dbcon.Close();
return ret;
}
}
else
{
return ExecuteNonQueryWithTransaction(cmd, m_trans);
}
}
private int ExecuteNonQueryWithTransaction(MySqlCommand cmd, MySqlTransaction trans)
{
cmd.Transaction = trans;
return ExecuteNonQueryWithConnection(cmd, trans.Connection);
}
private int ExecuteNonQueryWithConnection(MySqlCommand cmd, MySqlConnection dbcon)
{
try
{
cmd.Connection = dbcon;
try
{
int ret = cmd.ExecuteNonQuery();
cmd.Connection = null;
return ret;
}
catch (Exception e)
{
m_log.Error(e.Message, e);
m_log.Error(Environment.StackTrace.ToString());
cmd.Connection = null;
return 0;
}
}
catch (Exception e)
{
m_log.Error(e.Message, e);
return 0;
}
}
}
}
}

View File

@ -29,18 +29,16 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
using System.Text;
using MySql.Data.MySqlClient;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
namespace OpenSim.Data.MySQL
{
public class MySQLGenericTableHandler<T> : MySqlFramework where T: class, new()
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected Dictionary<string, FieldInfo> m_Fields =
new Dictionary<string, FieldInfo>();
@ -53,14 +51,27 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySQLGenericTableHandler(MySqlTransaction trans,
string realm, string storeName) : base(trans)
{
m_Realm = realm;
CommonConstruct(storeName);
}
public MySQLGenericTableHandler(string connectionString,
string realm, string storeName) : base(connectionString)
{
m_Realm = realm;
m_connectionString = connectionString;
CommonConstruct(storeName);
}
protected void CommonConstruct(string storeName)
{
if (storeName != String.Empty)
{
// We always use a new connection for any Migrations
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
@ -105,107 +116,167 @@ namespace OpenSim.Data.MySQL
}
public virtual T[] Get(string field, string key)
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.Parameters.AddWithValue(field, key);
cmd.CommandText = string.Format("select * from {0} where `{1}` = ?{1}", m_Realm, field);
return DoQuery(cmd);
}
}
public virtual T[] Get(string field, string[] keys)
{
return Get(new string[] { field }, new string[] { key });
int flen = keys.Length;
if(flen == 0)
return new T[0];
int flast = flen - 1;
StringBuilder sb = new StringBuilder(1024);
sb.AppendFormat("select * from {0} where {1} IN (?", m_Realm, field);
using (MySqlCommand cmd = new MySqlCommand())
{
for (int i = 0 ; i < flen ; i++)
{
string fname = field + i.ToString();
cmd.Parameters.AddWithValue(fname, keys[i]);
sb.Append(fname);
if(i < flast)
sb.Append(",?");
else
sb.Append(")");
}
cmd.CommandText = sb.ToString();
return DoQuery(cmd);
}
}
public virtual T[] Get(string[] fields, string[] keys)
{
if (fields.Length != keys.Length)
return Get(fields, keys, String.Empty);
}
public virtual T[] Get(string[] fields, string[] keys, string options)
{
int flen = fields.Length;
if (flen == 0 || flen != keys.Length)
return new T[0];
List<string> terms = new List<string>();
int flast = flen - 1;
StringBuilder sb = new StringBuilder(1024);
sb.AppendFormat("select * from {0} where ", m_Realm);
using (MySqlCommand cmd = new MySqlCommand())
{
for (int i = 0 ; i < fields.Length ; i++)
for (int i = 0 ; i < flen ; i++)
{
cmd.Parameters.AddWithValue(fields[i], keys[i]);
terms.Add("`" + fields[i] + "` = ?" + fields[i]);
if(i < flast)
sb.AppendFormat("`{0}` = ?{0} and ", fields[i]);
else
sb.AppendFormat("`{0}` = ?{0} ", fields[i]);
}
string where = String.Join(" and ", terms.ToArray());
sb.Append(options);
cmd.CommandText = sb.ToString();
string query = String.Format("select * from {0} where {1}",
m_Realm, where);
cmd.CommandText = query;
return DoQuery(cmd);
}
}
protected T[] DoQuery(MySqlCommand cmd)
{
List<T> result = new List<T>();
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
if (m_trans == null)
{
dbcon.Open();
cmd.Connection = dbcon;
using (IDataReader reader = cmd.ExecuteReader())
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
if (reader == null)
return new T[0];
CheckColumnNames(reader);
while (reader.Read())
{
T row = new T();
foreach (string name in m_Fields.Keys)
{
if (reader[name] is DBNull)
{
continue;
}
if (m_Fields[name].FieldType == typeof(bool))
{
int v = Convert.ToInt32(reader[name]);
m_Fields[name].SetValue(row, v != 0 ? true : false);
}
else if (m_Fields[name].FieldType == typeof(UUID))
{
m_Fields[name].SetValue(row, DBGuid.FromDB(reader[name]));
}
else if (m_Fields[name].FieldType == typeof(int))
{
int v = Convert.ToInt32(reader[name]);
m_Fields[name].SetValue(row, v);
}
else if (m_Fields[name].FieldType == typeof(uint))
{
uint v = Convert.ToUInt32(reader[name]);
m_Fields[name].SetValue(row, v);
}
else
{
m_Fields[name].SetValue(row, reader[name]);
}
}
if (m_DataField != null)
{
Dictionary<string, string> data =
new Dictionary<string, string>();
foreach (string col in m_ColumnNames)
{
data[col] = reader[col].ToString();
if (data[col] == null)
data[col] = String.Empty;
}
m_DataField.SetValue(row, data);
}
result.Add(row);
}
dbcon.Open();
T[] ret = DoQueryWithConnection(cmd, dbcon);
dbcon.Close();
return ret;
}
}
else
{
return DoQueryWithTransaction(cmd, m_trans);
}
}
protected T[] DoQueryWithTransaction(MySqlCommand cmd, MySqlTransaction trans)
{
cmd.Transaction = trans;
return DoQueryWithConnection(cmd, trans.Connection);
}
protected T[] DoQueryWithConnection(MySqlCommand cmd, MySqlConnection dbcon)
{
List<T> result = new List<T>();
cmd.Connection = dbcon;
using (IDataReader reader = cmd.ExecuteReader())
{
if (reader == null)
return new T[0];
CheckColumnNames(reader);
while (reader.Read())
{
T row = new T();
foreach (string name in m_Fields.Keys)
{
if (reader[name] is DBNull)
{
continue;
}
if (m_Fields[name].FieldType == typeof(bool))
{
int v = Convert.ToInt32(reader[name]);
m_Fields[name].SetValue(row, v != 0);
}
else if (m_Fields[name].FieldType == typeof(UUID))
{
m_Fields[name].SetValue(row, DBGuid.FromDB(reader[name]));
}
else if (m_Fields[name].FieldType == typeof(int))
{
int v = Convert.ToInt32(reader[name]);
m_Fields[name].SetValue(row, v);
}
else if (m_Fields[name].FieldType == typeof(uint))
{
uint v = Convert.ToUInt32(reader[name]);
m_Fields[name].SetValue(row, v);
}
else
{
m_Fields[name].SetValue(row, reader[name]);
}
}
if (m_DataField != null)
{
Dictionary<string, string> data =
new Dictionary<string, string>();
foreach (string col in m_ColumnNames)
{
data[col] = reader[col].ToString();
if (data[col] == null)
data[col] = String.Empty;
}
m_DataField.SetValue(row, data);
}
result.Add(row);
}
}
cmd.Connection = null;
return result.ToArray();
}
@ -215,9 +286,9 @@ namespace OpenSim.Data.MySQL
{
string query = String.Format("select * from {0} where {1}",
m_Realm, where);
cmd.CommandText = query;
return DoQuery(cmd);
}
}
@ -236,16 +307,16 @@ namespace OpenSim.Data.MySQL
{
names.Add(fi.Name);
values.Add("?" + fi.Name);
// Temporarily return more information about what field is unexpectedly null for
// http://opensimulator.org/mantis/view.php?id=5403. This might be due to a bug in the
// http://opensimulator.org/mantis/view.php?id=5403. This might be due to a bug in the
// InventoryTransferModule or we may be required to substitute a DBNull here.
if (fi.GetValue(row) == null)
throw new NullReferenceException(
string.Format(
"[MYSQL GENERIC TABLE HANDLER]: Trying to store field {0} for {1} which is unexpectedly null",
"[MYSQL GENERIC TABLE HANDLER]: Trying to store field {0} for {1} which is unexpectedly null",
fi.Name, row));
cmd.Parameters.AddWithValue(fi.Name, fi.GetValue(row).ToString());
}
@ -284,25 +355,26 @@ namespace OpenSim.Data.MySQL
// "[MYSQL GENERIC TABLE HANDLER]: Delete(string[] fields, string[] keys) invoked with {0}:{1}",
// string.Join(",", fields), string.Join(",", keys));
if (fields.Length != keys.Length)
int flen = fields.Length;
if (flen == 0 || flen != keys.Length)
return false;
List<string> terms = new List<string>();
int flast = flen - 1;
StringBuilder sb = new StringBuilder(1024);
sb.AppendFormat("delete from {0} where ", m_Realm);
using (MySqlCommand cmd = new MySqlCommand())
{
for (int i = 0 ; i < fields.Length ; i++)
for (int i = 0 ; i < flen ; i++)
{
cmd.Parameters.AddWithValue(fields[i], keys[i]);
terms.Add("`" + fields[i] + "` = ?" + fields[i]);
if(i < flast)
sb.AppendFormat("`{0}` = ?{0} and ", fields[i]);
else
sb.AppendFormat("`{0}` = ?{0}", fields[i]);
}
string where = String.Join(" and ", terms.ToArray());
string query = String.Format("delete from {0} where {1}", m_Realm, where);
cmd.CommandText = query;
cmd.CommandText = sb.ToString();
return ExecuteNonQuery(cmd) > 0;
}
}
@ -314,27 +386,27 @@ namespace OpenSim.Data.MySQL
public long GetCount(string[] fields, string[] keys)
{
if (fields.Length != keys.Length)
int flen = fields.Length;
if (flen == 0 || flen != keys.Length)
return 0;
List<string> terms = new List<string>();
int flast = flen - 1;
StringBuilder sb = new StringBuilder(1024);
sb.AppendFormat("select count(*) from {0} where ", m_Realm);
using (MySqlCommand cmd = new MySqlCommand())
{
for (int i = 0; i < fields.Length; i++)
for (int i = 0 ; i < flen ; i++)
{
cmd.Parameters.AddWithValue(fields[i], keys[i]);
terms.Add("`" + fields[i] + "` = ?" + fields[i]);
if(i < flast)
sb.AppendFormat("`{0}` = ?{0} and ", fields[i]);
else
sb.AppendFormat("`{0}` = ?{0}", fields[i]);
}
string where = String.Join(" and ", terms.ToArray());
string query = String.Format("select count(*) from {0} where {1}",
m_Realm, where);
cmd.CommandText = query;
Object result = DoQueryScalar(cmd);
cmd.CommandText = sb.ToString();
object result = DoQueryScalar(cmd);
return Convert.ToInt64(result);
}
@ -357,14 +429,26 @@ namespace OpenSim.Data.MySQL
public object DoQueryScalar(MySqlCommand cmd)
{
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
if (m_trans == null)
{
dbcon.Open();
cmd.Connection = dbcon;
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
cmd.Connection = dbcon;
object ret = cmd.ExecuteScalar();
cmd.Connection = null;
dbcon.Close();
return ret;
}
}
else
{
cmd.Connection = m_trans.Connection;
cmd.Transaction = m_trans;
return cmd.ExecuteScalar();
}
}
}
}

View File

@ -90,7 +90,7 @@ namespace OpenSim.Data.MySQL
else
pattern = string.Format("Name LIKE '%{0}%'", MySqlHelper.EscapeString(pattern));
return m_Groups.Get(string.Format("ShowInList=1 AND ({0}) ORDER BY Name LIMIT 100", pattern));
return m_Groups.Get(string.Format("ShowInList=1 AND ({0})", pattern));
}
public bool DeleteGroup(UUID groupID)
@ -133,10 +133,10 @@ namespace OpenSim.Data.MySQL
public bool DeleteMember(UUID groupID, string pricipalID)
{
return m_Membership.Delete(new string[] { "GroupID", "PrincipalID" },
return m_Membership.Delete(new string[] { "GroupID", "PrincipalID" },
new string[] { groupID.ToString(), pricipalID });
}
public int MemberCount(UUID groupID)
{
return (int)m_Membership.GetCount("GroupID", groupID.ToString());
@ -168,7 +168,7 @@ namespace OpenSim.Data.MySQL
public bool DeleteRole(UUID groupID, UUID roleID)
{
return m_Roles.Delete(new string[] { "GroupID", "RoleID" },
return m_Roles.Delete(new string[] { "GroupID", "RoleID" },
new string[] { groupID.ToString(), roleID.ToString() });
}
@ -360,7 +360,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsGroupsHandler(string connectionString, string realm, string store)
public MySqlGroupsGroupsHandler(string connectionString, string realm, string store)
: base(connectionString, realm, store)
{
}
@ -375,7 +375,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsMembershipHandler(string connectionString, string realm)
public MySqlGroupsMembershipHandler(string connectionString, string realm)
: base(connectionString, realm, string.Empty)
{
}
@ -390,7 +390,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsRolesHandler(string connectionString, string realm)
public MySqlGroupsRolesHandler(string connectionString, string realm)
: base(connectionString, realm, string.Empty)
{
}
@ -405,7 +405,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsRoleMembershipHandler(string connectionString, string realm)
public MySqlGroupsRoleMembershipHandler(string connectionString, string realm)
: base(connectionString, realm, string.Empty)
{
}
@ -420,7 +420,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsInvitesHandler(string connectionString, string realm)
public MySqlGroupsInvitesHandler(string connectionString, string realm)
: base(connectionString, realm, string.Empty)
{
}
@ -447,7 +447,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsNoticesHandler(string connectionString, string realm)
public MySqlGroupsNoticesHandler(string connectionString, string realm)
: base(connectionString, realm, string.Empty)
{
}
@ -475,7 +475,7 @@ namespace OpenSim.Data.MySQL
get { return GetType().Assembly; }
}
public MySqlGroupsPrincipalsHandler(string connectionString, string realm)
public MySqlGroupsPrincipalsHandler(string connectionString, string realm)
: base(connectionString, realm, string.Empty)
{
}

View File

@ -78,6 +78,7 @@ namespace OpenSim.Data.MySQL
dbcon.Open();
Migration m = new Migration(dbcon, assem, "InventoryStore");
m.Update();
dbcon.Close();
}
}
@ -130,6 +131,7 @@ namespace OpenSim.Data.MySQL
items.Add(item);
}
dbcon.Close();
return items;
}
}
@ -170,6 +172,7 @@ namespace OpenSim.Data.MySQL
while (reader.Read())
items.Add(readInventoryFolder(reader));
dbcon.Close();
return items;
}
}
@ -221,6 +224,7 @@ namespace OpenSim.Data.MySQL
if (items.Count > 0)
rootFolder = items[0];
dbcon.Close();
return rootFolder;
}
}
@ -261,6 +265,7 @@ namespace OpenSim.Data.MySQL
while (reader.Read())
items.Add(readInventoryFolder(reader));
dbcon.Close();
return items;
}
}
@ -288,7 +293,7 @@ namespace OpenSim.Data.MySQL
// TODO: this is to handle a case where NULLs creep in there, which we are not sure is endemic to the system, or legacy. It would be nice to live fix these.
// (DBGuid.FromDB() reads db NULLs as well, returns UUID.Zero)
item.CreatorId = reader["creatorID"].ToString();
// Be a bit safer in parsing these because the
// database doesn't enforce them to be not null, and
// the inventory still works if these are weird in the
@ -352,6 +357,7 @@ namespace OpenSim.Data.MySQL
if (reader.Read())
item = readInventoryItem(reader);
dbcon.Close();
return item;
}
}
@ -417,6 +423,7 @@ namespace OpenSim.Data.MySQL
if (reader.Read())
folder = readInventoryFolder(reader);
dbcon.Close();
return folder;
}
}
@ -453,7 +460,7 @@ namespace OpenSim.Data.MySQL
itemName = item.Name.Substring(0, 64);
m_log.Warn("[INVENTORY DB]: Name field truncated from " + item.Name.Length + " to " + itemName.Length + " characters on add item");
}
string itemDesc = item.Description;
if (item.Description.Length > 128)
{
@ -490,10 +497,10 @@ namespace OpenSim.Data.MySQL
result.Parameters.AddWithValue("?groupID", item.GroupID);
result.Parameters.AddWithValue("?groupOwned", item.GroupOwned);
result.Parameters.AddWithValue("?flags", item.Flags);
lock (m_dbLock)
result.ExecuteNonQuery();
result.Dispose();
}
@ -504,6 +511,7 @@ namespace OpenSim.Data.MySQL
lock (m_dbLock)
result.ExecuteNonQuery();
}
dbcon.Close();
}
}
catch (MySqlException e)
@ -540,6 +548,7 @@ namespace OpenSim.Data.MySQL
lock (m_dbLock)
cmd.ExecuteNonQuery();
}
dbcon.Close();
}
}
catch (MySqlException e)
@ -600,6 +609,7 @@ namespace OpenSim.Data.MySQL
m_log.Error(e.ToString());
}
}
dbcon.Close();
}
}
@ -630,7 +640,7 @@ namespace OpenSim.Data.MySQL
{
cmd.Parameters.AddWithValue("?folderID", folder.ID.ToString());
cmd.Parameters.AddWithValue("?parentFolderID", folder.ParentID.ToString());
try
{
lock (m_dbLock)
@ -643,6 +653,7 @@ namespace OpenSim.Data.MySQL
m_log.Error(e.ToString());
}
}
dbcon.Close();
}
}
@ -806,6 +817,7 @@ namespace OpenSim.Data.MySQL
lock (m_dbLock)
cmd.ExecuteNonQuery();
}
dbcon.Close();
}
}
catch (MySqlException e)
@ -833,6 +845,7 @@ namespace OpenSim.Data.MySQL
lock (m_dbLock)
cmd.ExecuteNonQuery();
}
dbcon.Close();
}
}
catch (MySqlException e)
@ -860,7 +873,7 @@ namespace OpenSim.Data.MySQL
deleteOneFolder(folderID);
deleteItemsInFolder(folderID);
}
public List<InventoryItemBase> fetchActiveGestures(UUID avatarID)
{
lock (m_dbLock)
@ -886,6 +899,7 @@ namespace OpenSim.Data.MySQL
if (item != null)
list.Add(item);
}
dbcon.Close();
return list;
}
}

View File

@ -39,16 +39,16 @@ namespace OpenSim.Data.MySQL
{
/// <summary>This is a MySQL-customized migration processor. The only difference is in how
/// it executes SQL scripts (using MySqlScript instead of MyCommand)
///
///
/// </summary>
public class MySqlMigration : Migration
{
public MySqlMigration()
: base()
{
{
}
public MySqlMigration(DbConnection conn, Assembly assem, string subtype, string type) :
public MySqlMigration(DbConnection conn, Assembly assem, string subtype, string type) :
base(conn, assem, subtype, type)
{
}

View File

@ -26,41 +26,42 @@
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
using MySql.Data.MySqlClient;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
namespace OpenSim.Data.MySQL
{
class ExtensionHandler : IExtension
public class MySqlMuteListData : MySQLGenericTableHandler<MuteData>, IMuteListData
{
private readonly Dictionary<Type, object> m_instances;
public ExtensionHandler(Dictionary<Type, object> instances)
public MySqlMuteListData(string connectionString)
: base(connectionString, "MuteList", "MuteListStore")
{
m_instances = instances;
}
public T Get<T>()
public MuteData[] Get(UUID agentID)
{
return (T) m_instances[typeof (T)];
MuteData[] data = base.Get("AgentID", agentID.ToString());
return data;
}
public bool TryGet<T>(out T extension)
public bool Delete(UUID agentID, UUID muteID, string muteName)
{
if (!m_instances.ContainsKey(typeof(T)))
string cmnd ="delete from MuteList where AgentID = ?AgentID and MuteID = ?MuteID and MuteName = ?MuteName";
using (MySqlCommand cmd = new MySqlCommand(cmnd))
{
extension = default(T);
cmd.Parameters.AddWithValue("?AgentID", agentID.ToString());
cmd.Parameters.AddWithValue("?MuteID", muteID.ToString());
cmd.Parameters.AddWithValue("?MuteName", muteName);
if (ExecuteNonQuery(cmd) > 0)
return true;
return false;
}
extension = Get<T>();
return true;
}
public bool Has<T>()
{
return m_instances.ContainsKey(typeof (T));
}
}
}
}

View File

@ -50,7 +50,7 @@ namespace OpenSim.Data.MySQL
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.CommandText = String.Format("delete from {0} where TMStamp < NOW() - INTERVAL 2 WEEK", m_Realm);
ExecuteNonQuery(cmd);
}

View File

@ -66,9 +66,9 @@ namespace OpenSim.Data.MySQL
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.CommandText = String.Format("delete from {0} where `RegionID`=?RegionID", m_Realm);
cmd.Parameters.AddWithValue("?RegionID", regionID.ToString());
ExecuteNonQuery(cmd);
}
}
@ -85,10 +85,10 @@ namespace OpenSim.Data.MySQL
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.CommandText = String.Format("update {0} set RegionID=?RegionID, LastSeen=NOW() where `SessionID`=?SessionID", m_Realm);
cmd.Parameters.AddWithValue("?SessionID", sessionID.ToString());
cmd.Parameters.AddWithValue("?RegionID", regionID.ToString());
if (ExecuteNonQuery(cmd) == 0)
return false;
}

View File

@ -60,6 +60,7 @@ namespace OpenSim.Data.MySQL
dbcon.Open();
Migration m = new Migration(dbcon, Assembly, "GridStore");
m.Update();
dbcon.Close();
}
}
@ -80,17 +81,15 @@ namespace OpenSim.Data.MySQL
}
}
public RegionData Get(int posX, int posY, UUID scopeID)
public RegionData GetSpecific(string regionName, UUID scopeID)
{
/* fixed size regions
string command = "select * from `"+m_Realm+"` where locX = ?posX and locY = ?posY";
string command = "select * from `" + m_Realm + "` where regionName = ?regionName";
if (scopeID != UUID.Zero)
command += " and ScopeID = ?scopeID";
using (MySqlCommand cmd = new MySqlCommand(command))
{
cmd.Parameters.AddWithValue("?posX", posX.ToString());
cmd.Parameters.AddWithValue("?posY", posY.ToString());
cmd.Parameters.AddWithValue("?regionName", regionName);
cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
List<RegionData> ret = RunCommand(cmd);
@ -99,8 +98,11 @@ namespace OpenSim.Data.MySQL
return ret[0];
}
*/
// extend database search for maximum region size area
}
public RegionData Get(int posX, int posY, UUID scopeID)
{
string command = "select * from `" + m_Realm + "` where locX between ?startX and ?endX and locY between ?startY and ?endY";
if (scopeID != UUID.Zero)
command += " and ScopeID = ?scopeID";
@ -204,7 +206,7 @@ namespace OpenSim.Data.MySQL
foreach (RegionData r in dbret)
{
if (r.posX + r.sizeX > startX && r.posX <= endX
&& r.posY + r.sizeX > startY && r.posY <= endY)
&& r.posY + r.sizeY > startY && r.posY <= endY)
ret.Add(r);
}
return ret;
@ -260,6 +262,8 @@ namespace OpenSim.Data.MySQL
retList.Add(ret);
}
}
cmd.Connection = null;
dbcon.Close();
}
return retList;
@ -410,7 +414,7 @@ namespace OpenSim.Data.MySQL
using (MySqlCommand cmd = new MySqlCommand(command))
{
cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
return RunCommand(cmd);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -58,11 +58,6 @@ namespace OpenSim.Data.MySQL
private bool m_enableCompression = false;
private string m_connectionString;
/// <summary>
/// We can reuse this for all hashing since all methods are single-threaded through m_dbBLock
/// </summary>
private HashAlgorithm hasher = new SHA256CryptoServiceProvider();
#region IPlugin Members
public string Version { get { return "1.0.0.0"; } }
@ -97,6 +92,7 @@ namespace OpenSim.Data.MySQL
dbcon.Open();
Migration m = new Migration(dbcon, Assembly, "XAssetStore");
m.Update();
dbcon.Close();
}
}
@ -130,6 +126,7 @@ namespace OpenSim.Data.MySQL
// m_log.DebugFormat("[MYSQL XASSET DATA]: Looking for asset {0}", assetID);
AssetBase asset = null;
int accessTime = 0;
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
@ -140,7 +137,6 @@ namespace OpenSim.Data.MySQL
dbcon))
{
cmd.Parameters.AddWithValue("?ID", assetID.ToString());
try
{
using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow))
@ -159,23 +155,7 @@ namespace OpenSim.Data.MySQL
asset.Temporary = Convert.ToBoolean(dbReader["Temporary"]);
asset.Flags = (AssetFlags)Convert.ToInt32(dbReader["AssetFlags"]);
if (m_enableCompression)
{
using (GZipStream decompressionStream = new GZipStream(new MemoryStream(asset.Data), CompressionMode.Decompress))
{
MemoryStream outputStream = new MemoryStream();
WebUtil.CopyStream(decompressionStream, outputStream, int.MaxValue);
// int compressedLength = asset.Data.Length;
asset.Data = outputStream.ToArray();
// m_log.DebugFormat(
// "[XASSET DB]: Decompressed {0} {1} to {2} bytes from {3}",
// asset.ID, asset.Name, asset.Data.Length, compressedLength);
}
}
UpdateAccessTime(asset.Metadata, (int)dbReader["AccessTime"]);
accessTime = (int)dbReader["AccessTime"];
}
}
}
@ -184,9 +164,38 @@ namespace OpenSim.Data.MySQL
m_log.Error(string.Format("[MYSQL XASSET DATA]: Failure fetching asset {0}", assetID), e);
}
}
dbcon.Close();
}
return asset;
if(asset == null)
return asset;
if(accessTime > 0)
{
try
{
UpdateAccessTime(asset.Metadata, accessTime);
}
catch { }
}
if (m_enableCompression && asset.Data != null)
{
using(MemoryStream ms = new MemoryStream(asset.Data))
using(GZipStream decompressionStream = new GZipStream(ms, CompressionMode.Decompress))
{
using(MemoryStream outputStream = new MemoryStream())
{
decompressionStream.CopyTo(outputStream, int.MaxValue);
// int compressedLength = asset.Data.Length;
asset.Data = outputStream.ToArray();
}
// m_log.DebugFormat(
// "[XASSET DB]: Decompressed {0} {1} to {2} bytes from {3}",
// asset.ID, asset.Name, asset.Data.Length, compressedLength);
}
}
return asset;
}
/// <summary>
@ -209,7 +218,7 @@ namespace OpenSim.Data.MySQL
{
assetName = asset.Name.Substring(0, AssetBase.MAX_ASSET_NAME);
m_log.WarnFormat(
"[XASSET DB]: Name '{0}' for asset {1} truncated from {2} to {3} characters on add",
"[XASSET DB]: Name '{0}' for asset {1} truncated from {2} to {3} characters on add",
asset.Name, asset.ID, asset.Name.Length, assetName.Length);
}
@ -218,7 +227,7 @@ namespace OpenSim.Data.MySQL
{
assetDescription = asset.Description.Substring(0, AssetBase.MAX_ASSET_DESC);
m_log.WarnFormat(
"[XASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add",
"[XASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add",
asset.Description, asset.ID, asset.Description.Length, assetDescription.Length);
}
@ -236,7 +245,9 @@ namespace OpenSim.Data.MySQL
}
}
byte[] hash = hasher.ComputeHash(asset.Data);
byte[] hash;
using (HashAlgorithm hasher = new SHA256CryptoServiceProvider())
hash = hasher.ComputeHash(asset.Data);
// m_log.DebugFormat(
// "[XASSET DB]: Compressed data size for {0} {1}, hash {2} is {3}",
@ -303,6 +314,7 @@ namespace OpenSim.Data.MySQL
transaction.Commit();
}
dbcon.Close();
}
}
@ -341,9 +353,10 @@ namespace OpenSim.Data.MySQL
catch (Exception)
{
m_log.ErrorFormat(
"[XASSET MYSQL DB]: Failure updating access_time for asset {0} with name {1}",
"[XASSET MYSQL DB]: Failure updating access_time for asset {0} with name {1}",
assetMetadata.ID, assetMetadata.Name);
}
dbcon.Close();
}
}
@ -474,6 +487,7 @@ namespace OpenSim.Data.MySQL
m_log.Error("[XASSETS DB]: MySql failure fetching asset set" + Environment.NewLine + e.ToString());
}
}
dbcon.Close();
}
return retList;
@ -492,9 +506,9 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("?ID", id);
cmd.ExecuteNonQuery();
}
// TODO: How do we deal with data from deleted assets? Probably not easily reapable unless we
// keep a reference count (?)
dbcon.Close();
}
return true;

View File

@ -80,7 +80,7 @@ namespace OpenSim.Data.MySQL
return m_Items.Store(item);
}
public bool DeleteFolders(string field, string val)
{
return m_Folders.Delete(field, val);
@ -193,7 +193,9 @@ namespace OpenSim.Data.MySQL
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.CommandText = String.Format("select * from inventoryitems where avatarId = ?uuid and assetType = ?type and flags & 1", m_Realm);
// cmd.CommandText = String.Format("select * from inventoryitems where avatarId = ?uuid and assetType = ?type and flags & 1", m_Realm);
cmd.CommandText = String.Format("select * from inventoryitems where avatarId = ?uuid and assetType = ?type and flags & 1");
cmd.Parameters.AddWithValue("?uuid", principalID.ToString());
cmd.Parameters.AddWithValue("?type", (int)AssetType.Gesture);
@ -212,15 +214,18 @@ namespace OpenSim.Data.MySQL
{
cmd.Connection = dbcon;
cmd.CommandText = String.Format("select bit_or(inventoryCurrentPermissions) as inventoryCurrentPermissions from inventoryitems where avatarID = ?PrincipalID and assetID = ?AssetID group by assetID", m_Realm);
// cmd.CommandText = String.Format("select bit_or(inventoryCurrentPermissions) as inventoryCurrentPermissions from inventoryitems where avatarID = ?PrincipalID and assetID = ?AssetID group by assetID", m_Realm);
cmd.CommandText = String.Format("select bit_or(inventoryCurrentPermissions) as inventoryCurrentPermissions from inventoryitems where avatarID = ?PrincipalID and assetID = ?AssetID group by assetID");
cmd.Parameters.AddWithValue("?PrincipalID", principalID.ToString());
cmd.Parameters.AddWithValue("?AssetID", assetID.ToString());
using (IDataReader reader = cmd.ExecuteReader())
{
int perms = 0;
if (reader.Read())
{
perms = Convert.ToInt32(reader["inventoryCurrentPermissions"]);
@ -323,7 +328,6 @@ namespace OpenSim.Data.MySQL
{
return false;
}
cmd.Dispose();
}
dbcon.Close();

View File

@ -69,3 +69,15 @@ CREATE TABLE IF NOT EXISTS `estateban` (
COMMIT;
:VERSION 35
BEGIN;
ALTER TABLE `estateban`
ADD COLUMN `banningUUID` varchar(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
ADD COLUMN `banTime` int(11) NOT NULL DEFAULT 0;
COMMIT;
:VERSION 36
BEGIN;
ALTER TABLE `estate_settings`
ADD COLUMN `AllowEnviromentOverride` tinyint(4) NOT NULL DEFAULT '0';
COMMIT;

View File

@ -16,3 +16,9 @@ CREATE TABLE `hg_traveling_data` (
COMMIT;
:VERSION 2 # --------------------------
ALTER TABLE `hg_traveling_data` MODIFY `TMStamp` timestamp NOT NULL default CURRENT_TIMESTAMP;
COMMIT;

View File

@ -11,6 +11,6 @@ CREATE TABLE IF NOT EXISTS `im_offline` (
PRIMARY KEY (`ID`),
KEY `PrincipalID` (`PrincipalID`),
KEY `FromID` (`FromID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
COMMIT;

View File

@ -0,0 +1,16 @@
:VERSION 1
BEGIN;
CREATE TABLE `MuteList` (
`AgentID` char(36) NOT NULL,
`MuteID` char(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`MuteName` varchar(64) NOT NULL DEFAULT '',
`MuteType` int(11) NOT NULL DEFAULT '1',
`MuteFlags` int(11) NOT NULL DEFAULT '0',
`Stamp` int(11) NOT NULL,
UNIQUE KEY `AgentID_2` (`AgentID`,`MuteID`,`MuteName`),
KEY `AgentID` (`AgentID`)
);
COMMIT;

View File

@ -97,7 +97,7 @@ CREATE TABLE IF NOT EXISTS `prims` (
PRIMARY KEY (`UUID`),
KEY `prims_regionuuid` (`RegionUUID`),
KEY `prims_scenegroupid` (`SceneGroupID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `primshapes` (
`Shape` int(11) DEFAULT NULL,
@ -130,7 +130,7 @@ CREATE TABLE IF NOT EXISTS `primshapes` (
`Media` text,
`LastAttachPoint` int(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`UUID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `primitems` (
`invType` int(11) DEFAULT NULL,
@ -154,13 +154,13 @@ CREATE TABLE IF NOT EXISTS `primitems` (
`lastOwnerID` char(36) DEFAULT NULL,
PRIMARY KEY (`itemID`),
KEY `primitems_primid` (`primID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `terrain` (
`RegionUUID` varchar(255) DEFAULT NULL,
`Revision` int(11) DEFAULT NULL,
`Heightfield` longblob
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `land` (
`UUID` varchar(255) NOT NULL,
@ -204,21 +204,21 @@ CREATE TABLE IF NOT EXISTS `land` (
`ObscureMusic` tinyint(1) NOT NULL DEFAULT '0',
`ObscureMedia` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`UUID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `landaccesslist` (
`LandUUID` varchar(255) DEFAULT NULL,
`AccessUUID` varchar(255) DEFAULT NULL,
`Flags` int(11) DEFAULT NULL,
`Expires` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `regionban` (
`regionUUID` varchar(36) NOT NULL,
`bannedUUID` varchar(36) NOT NULL,
`bannedIp` varchar(16) NOT NULL,
`bannedIpHostMask` varchar(16) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `regionsettings` (
`regionUUID` char(36) NOT NULL,
@ -265,7 +265,7 @@ CREATE TABLE IF NOT EXISTS `regionsettings` (
`parcel_tile_ID` char(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
`covenant_datetime` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`regionUUID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `regionwindlight` (
`region_id` varchar(36) NOT NULL DEFAULT '000000-0000-0000-0000-000000000000',
@ -390,3 +390,163 @@ CREATE TABLE IF NOT EXISTS `bakedterrain` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
COMMIT;
:VERSION 55 #----- Increase float precision for windlight needed by scripts
BEGIN;
ALTER TABLE `regionwindlight`
MODIFY `water_fog_density_exponent` float(9,7) unsigned NOT NULL DEFAULT '4.0',
MODIFY `underwater_fog_modifier` float(9,8) unsigned NOT NULL DEFAULT '0.25',
MODIFY `reflection_wavelet_scale_1` float(9,7) unsigned NOT NULL DEFAULT '2.0',
MODIFY `reflection_wavelet_scale_2` float(9,7) unsigned NOT NULL DEFAULT '2.0',
MODIFY `reflection_wavelet_scale_3` float(9,7) unsigned NOT NULL DEFAULT '2.0',
MODIFY `fresnel_scale` float(9,8) unsigned NOT NULL DEFAULT '0.40',
MODIFY `fresnel_offset` float(9,8) unsigned NOT NULL DEFAULT '0.50',
MODIFY `refract_scale_above` float(9,8) unsigned NOT NULL DEFAULT '0.03',
MODIFY `refract_scale_below` float(9,8) unsigned NOT NULL DEFAULT '0.20',
MODIFY `blur_multiplier` float(9,8) unsigned NOT NULL DEFAULT '0.040',
MODIFY `big_wave_direction_x` float(9,8) NOT NULL DEFAULT '1.05',
MODIFY `big_wave_direction_y` float(9,8) NOT NULL DEFAULT '-0.42',
MODIFY `little_wave_direction_x` float(9,8) NOT NULL DEFAULT '1.11',
MODIFY `little_wave_direction_y` float(9,8) NOT NULL DEFAULT '-1.16',
MODIFY `horizon_r` float(9,8) unsigned NOT NULL DEFAULT '0.25',
MODIFY `horizon_g` float(9,8) unsigned NOT NULL DEFAULT '0.25',
MODIFY `horizon_b` float(9,8) unsigned NOT NULL DEFAULT '0.32',
MODIFY `horizon_i` float(9,8) unsigned NOT NULL DEFAULT '0.32',
MODIFY `haze_horizon` float(9,8) unsigned NOT NULL DEFAULT '0.19',
MODIFY `blue_density_r` float(9,8) unsigned NOT NULL DEFAULT '0.12',
MODIFY `blue_density_g` float(9,8) unsigned NOT NULL DEFAULT '0.22',
MODIFY `blue_density_b` float(9,8) unsigned NOT NULL DEFAULT '0.38',
MODIFY `blue_density_i` float(9,8) unsigned NOT NULL DEFAULT '0.38',
MODIFY `haze_density` float(9,8) unsigned NOT NULL DEFAULT '0.70',
MODIFY `density_multiplier` float(9,8) unsigned NOT NULL DEFAULT '0.18',
MODIFY `distance_multiplier` float(9,6) unsigned NOT NULL DEFAULT '0.8',
MODIFY `sun_moon_color_r` float(9,8) unsigned NOT NULL DEFAULT '0.24',
MODIFY `sun_moon_color_g` float(9,8) unsigned NOT NULL DEFAULT '0.26',
MODIFY `sun_moon_color_b` float(9,8) unsigned NOT NULL DEFAULT '0.30',
MODIFY `sun_moon_color_i` float(9,8) unsigned NOT NULL DEFAULT '0.30',
MODIFY `sun_moon_position` float(9,8) unsigned NOT NULL DEFAULT '0.317',
MODIFY `ambient_r` float(9,8) unsigned NOT NULL DEFAULT '0.35',
MODIFY `ambient_g` float(9,8) unsigned NOT NULL DEFAULT '0.35',
MODIFY `ambient_b` float(9,8) unsigned NOT NULL DEFAULT '0.35',
MODIFY `ambient_i` float(9,8) unsigned NOT NULL DEFAULT '0.35',
MODIFY `east_angle` float(9,8) unsigned NOT NULL DEFAULT '0.00',
MODIFY `sun_glow_focus` float(9,8) unsigned NOT NULL DEFAULT '0.10',
MODIFY `sun_glow_size` float(9,8) unsigned NOT NULL DEFAULT '1.75',
MODIFY `scene_gamma` float(9,7) unsigned NOT NULL DEFAULT '1.00',
MODIFY `star_brightness` float(9,8) unsigned NOT NULL DEFAULT '0.00',
MODIFY `cloud_color_r` float(9,8) unsigned NOT NULL DEFAULT '0.41',
MODIFY `cloud_color_g` float(9,8) unsigned NOT NULL DEFAULT '0.41',
MODIFY `cloud_color_b` float(9,8) unsigned NOT NULL DEFAULT '0.41',
MODIFY `cloud_color_i` float(9,8) unsigned NOT NULL DEFAULT '0.41',
MODIFY `cloud_x` float(9,8) unsigned NOT NULL DEFAULT '1.00',
MODIFY `cloud_y` float(9,8) unsigned NOT NULL DEFAULT '0.53',
MODIFY `cloud_density` float(9,8) unsigned NOT NULL DEFAULT '1.00',
MODIFY `cloud_coverage` float(9,8) unsigned NOT NULL DEFAULT '0.27',
MODIFY `cloud_scale` float(9,8) unsigned NOT NULL DEFAULT '0.42',
MODIFY `cloud_detail_x` float(9,8) unsigned NOT NULL DEFAULT '1.00',
MODIFY `cloud_detail_y` float(9,8) unsigned NOT NULL DEFAULT '0.53',
MODIFY `cloud_detail_density` float(9,8) unsigned NOT NULL DEFAULT '0.12',
MODIFY `cloud_scroll_x` float(9,7) NOT NULL DEFAULT '0.20',
MODIFY `cloud_scroll_y` float(9,7) NOT NULL DEFAULT '0.01';
COMMIT;
:VERSION 56 #----- Add RezzerID field in table prims
BEGIN;
ALTER TABLE `prims` ADD COLUMN `RezzerID` char(36) DEFAULT NULL;
COMMIT;
:VERSION 57 #----- Add physics inertia data
BEGIN;
ALTER TABLE `prims` ADD COLUMN `PhysInertia` TEXT default NULL;
COMMIT;
:VERSION 58 #----- Add sop animations
BEGIN;
ALTER TABLE `prims` ADD COLUMN `sopanims` blob default NULL;
COMMIT;
:VERSION 59 #----- Add standtarget and sit range
BEGIN;
ALTER TABLE `prims`
ADD COLUMN `standtargetx` float DEFAULT '0.0',
ADD COLUMN `standtargety` float DEFAULT '0.0',
ADD COLUMN `standtargetz` float DEFAULT '0.0',
ADD COLUMN `sitactrange` float DEFAULT '0.0';
COMMIT;
:VERSION 60 #----- don't store float on double
BEGIN;
ALTER TABLE `prims`
MODIFY `PositionX` float DEFAULT '0.0',
MODIFY `PositionY` float DEFAULT '0.0',
MODIFY `PositionZ` float DEFAULT '0.0',
MODIFY `GroupPositionX` float DEFAULT '0.0',
MODIFY `GroupPositionY` float DEFAULT '0.0',
MODIFY `GroupPositionZ` float DEFAULT '0.0',
MODIFY `VelocityX` float DEFAULT '0.0',
MODIFY `VelocityY` float DEFAULT '0.0',
MODIFY `VelocityZ` float DEFAULT '0.0',
MODIFY `AngularVelocityX` float DEFAULT '0.0',
MODIFY `AngularVelocityY` float DEFAULT '0.0',
MODIFY `AngularVelocityZ` float DEFAULT '0.0',
MODIFY `AccelerationX` float DEFAULT '0.0',
MODIFY `AccelerationY` float DEFAULT '0.0',
MODIFY `AccelerationZ` float DEFAULT '0.0',
MODIFY `RotationX` float DEFAULT '0.0',
MODIFY `RotationY` float DEFAULT '0.0',
MODIFY `RotationZ` float DEFAULT '0.0',
MODIFY `RotationW` float DEFAULT '0.0',
MODIFY `SitTargetOffsetX` float DEFAULT '0.0',
MODIFY `SitTargetOffsetY` float DEFAULT '0.0',
MODIFY `SitTargetOffsetZ` float DEFAULT '0.0',
MODIFY `SitTargetOrientX` float DEFAULT '0.0',
MODIFY `SitTargetOrientY` float DEFAULT '0.0',
MODIFY `SitTargetOrientZ` float DEFAULT '0.0',
MODIFY `SitTargetOrientW` float DEFAULT '0.0',
MODIFY `OmegaX` float DEFAULT '0.0',
MODIFY `OmegaY` float DEFAULT '0.0',
MODIFY `OmegaZ` float DEFAULT '0.0',
MODIFY `CameraEyeOffsetX` float DEFAULT '0.0',
MODIFY `CameraEyeOffsetY` float DEFAULT '0.0',
MODIFY `CameraEyeOffsetZ` float DEFAULT '0.0',
MODIFY `CameraAtOffsetX` float DEFAULT '0.0',
MODIFY `CameraAtOffsetY` float DEFAULT '0.0',
MODIFY `CameraAtOffsetZ` float DEFAULT '0.0',
MODIFY `Density` float DEFAULT '1000.0',
MODIFY `GravityModifier` float DEFAULT '1.0',
MODIFY `Friction` float DEFAULT '0.6',
MODIFY `Restitution` float DEFAULT '0.5',
MODIFY `AttachedPosX` float DEFAULT '0',
MODIFY `AttachedPosY` float DEFAULT '0',
MODIFY `AttachedPosZ` float DEFAULT '0',
MODIFY `LoopedSoundGain` float DEFAULT '0';
COMMIT;
:VERSION 61 #----- Add pseudo CRC and region cache id
BEGIN;
ALTER TABLE `prims` ADD COLUMN `pseudocrc` int DEFAULT '0';
ALTER TABLE `regionsettings` ADD COLUMN `cacheID` char(36) DEFAULT NULL;
COMMIT;
:VERSION 62 #----- increase size of environment settings
BEGIN;
ALTER TABLE `regionenvironment` MODIFY `llsd_settings` MEDIUMTEXT;
COMMIT;
:VERSION 63 #----- parcel environment store
BEGIN;
ALTER TABLE `land` ADD COLUMN `environment` MEDIUMTEXT default NULL;
COMMIT;

View File

@ -27,7 +27,7 @@ CREATE TABLE IF NOT EXISTS `usernotes` (
`targetuuid` varchar(36) NOT NULL,
`notes` text NOT NULL,
UNIQUE KEY `useruuid` (`useruuid`,`targetuuid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `userpicks` (
@ -46,7 +46,7 @@ CREATE TABLE IF NOT EXISTS `userpicks` (
`enabled` enum('true','false') NOT NULL,
`gatekeeper` varchar(255),
PRIMARY KEY (`pickuuid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `userprofile` (
@ -65,7 +65,7 @@ CREATE TABLE IF NOT EXISTS `userprofile` (
`profileFirstImage` varchar(36) NOT NULL,
`profileFirstText` text NOT NULL,
PRIMARY KEY (`useruuid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `userdata` (
`UserId` char(36) NOT NULL,
@ -73,7 +73,7 @@ CREATE TABLE IF NOT EXISTS `userdata` (
`DataKey` varchar(255),
`DataVal` varchar(255),
PRIMARY KEY (`UserId`,`TagId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `usersettings` (
`useruuid` varchar(36) NOT NULL,
@ -81,6 +81,6 @@ CREATE TABLE IF NOT EXISTS `usersettings` (
`visible` enum('true','false') NOT NULL,
`email` varchar(254) NOT NULL,
PRIMARY KEY (`useruuid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
commit;

View File

@ -31,7 +31,7 @@ CREATE TABLE `os_groups_membership` (
`AccessToken` char(36) NOT NULL default '',
PRIMARY KEY (`GroupID`,`PrincipalID`),
KEY `PrincipalID` (`PrincipalID`)
) ENGINE=MyISAM;
) ENGINE=InnoDB;
CREATE TABLE `os_groups_roles` (
@ -43,7 +43,7 @@ CREATE TABLE `os_groups_roles` (
`Powers` bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (`GroupID`,`RoleID`),
KEY `GroupID` (`GroupID`)
) ENGINE=MyISAM;
) ENGINE=InnoDB;
CREATE TABLE `os_groups_rolemembership` (
@ -52,7 +52,7 @@ CREATE TABLE `os_groups_rolemembership` (
`PrincipalID` VARCHAR(255) NOT NULL default '',
PRIMARY KEY (`GroupID`,`RoleID`,`PrincipalID`),
KEY `PrincipalID` (`PrincipalID`)
) ENGINE=MyISAM;
) ENGINE=InnoDB;
CREATE TABLE `os_groups_invites` (
@ -63,7 +63,7 @@ CREATE TABLE `os_groups_invites` (
`TMStamp` timestamp NOT NULL,
PRIMARY KEY (`InviteID`),
UNIQUE KEY `PrincipalGroup` (`GroupID`,`PrincipalID`)
) ENGINE=MyISAM;
) ENGINE=InnoDB;
CREATE TABLE `os_groups_notices` (
@ -81,13 +81,13 @@ CREATE TABLE `os_groups_notices` (
PRIMARY KEY (`NoticeID`),
KEY `GroupID` (`GroupID`),
KEY `TMStamp` (`TMStamp`)
) ENGINE=MyISAM;
) ENGINE=InnoDB;
CREATE TABLE `os_groups_principals` (
`PrincipalID` VARCHAR(255) NOT NULL default '',
`ActiveGroupID` char(36) NOT NULL default '',
PRIMARY KEY (`PrincipalID`)
) ENGINE=MyISAM;
) ENGINE=InnoDB;
COMMIT;
@ -112,4 +112,12 @@ DROP TABLE `diva_groups_principals`;
DELETE FROM `migrations` WHERE name='diva_im_Store';
COMMIT;
COMMIT;
:VERSION 3 # --------------------------
ALTER TABLE `os_groups_invites`
MODIFY `TMStamp` timestamp NOT NULL default CURRENT_TIMESTAMP;
COMMIT;

View File

@ -102,19 +102,19 @@ namespace OpenSim.Data.Null
{
return new EstateSettings();
}
public List<EstateSettings> LoadEstateSettingsAll()
{
List<EstateSettings> allEstateSettings = new List<EstateSettings>();
allEstateSettings.Add(GetEstate());
return allEstateSettings;
}
public List<int> GetEstatesAll()
{
List<int> result = new List<int>();
result.Add((int)GetEstate().EstateID);
return result;
return result;
}
public List<int> GetEstates(string search)

Some files were not shown because too many files have changed in this diff Show More