Commit Graph

586 Commits

Author SHA1 Message Date
pranomostro
03f99bde2e
Test for memberlist not changing after changing own name.
This test shows that the conference members callback is not invoked when
the own name changes.
2017-06-04 13:40:44 +00:00
pranomostro
7ef27a9105 Make variable names in file saving test less cryptic. 2017-05-13 22:59:50 +02:00
Maxim Biro
c25e3d2d7c Revert "initial version of tox_loop"
This reverts commit 200ee1cace.
2017-04-22 15:31:25 -04:00
Maxim Biro
c7f63737eb Revert "Implement tox_loop"
This reverts commit 5ff099763b.
2017-04-22 15:31:25 -04:00
Diadlo
e565523640
Add test for DHT pack_nodes and unpack_nodes 2017-04-13 20:25:19 +00:00
Ansa89
5ff099763b
Implement tox_loop 2017-04-01 17:47:34 +02:00
michael bishop
200ee1cace
initial version of tox_loop 2017-04-01 17:47:34 +02:00
Diadlo
50c526e1a5
Move c_sleep to helpers.h and misc_tools.h
Also fix a mistake with forgotten braces around parameter
2017-03-25 20:40:34 +03:00
Maxim Biro
def92ab029 Add test for tox_strncasecmp() 2017-03-01 20:43:30 -05:00
Diadlo
b19a9e5464
Add part of platform-independent network API implementation
socket      -> net_socket
htons       -> net_htons
htonl       -> net_htonl
connect     -> net_connect
sendto      -> net_sendto_ip4
getaddrinfo -> net_getipport
sa_family_t -> Family
2017-02-26 23:16:16 +03:00
iphydf
6ae33c16cf
Add VLA compatibility macro for C89-ish compilers. 2017-01-28 20:49:12 +00:00
Diadlo
f00006cf1d
Add platform-independent Socket and IP implementation 2017-01-26 23:11:15 +03:00
zugz
b630121f2f reduce thread-unsafe use of static variables
- rework ip_ntoa() to avoid use of static variables
- rework sort_client_list() to avoid use of static variables
- move static 'lastdump' into Messenger struct
- rework ID2String() to avoid use of static variables; rename to id_to_string()
- fetch_broadcast_info(): attempt to mitigate risks from concurrent execution
- current_time_monotonic(): attempt to mitigate risks from concurrent execution
- comment on non-thread-safety of unix_time_update
2017-01-21 22:08:52 +01:00
iphydf
8f96ca6d86
Update license headers and remove redundant file name comment.
"All rights reserved" was incorrect. The project was licensed under GPL3,
which means a lot of rights are licensed to everybody in the world, i.e.
not reserved to the "Tox Project".
2017-01-19 00:01:44 +00:00
iphydf
8f1dbaa2c5
Set up autotools build to build against vanilla NaCl.
Fixes #363.
2017-01-08 15:27:26 +00:00
endoffile78
d41bb3a8d4
Fix issues in crypto_test.c 2017-01-07 11:47:31 -06:00
endoffile78
e667ec23b9
Replace make_quick_sort with qsort 2017-01-07 11:47:30 -06:00
iphydf
3fb683115c
Add logging callback to messenger_test.
So we can see what went wrong if it fails.
2017-01-06 23:25:46 +00:00
David Zero
8ef1f35ca7 Revert "Revert "Portability fixes""
This reverts commit 59e2a844f0, and
defines _DARWIN_C_SOURCE in toxcore/network.c
2017-01-06 04:20:00 -08:00
endoffile78
59e2a844f0 Revert "Portability fixes"
This reverts commit f3469070fe.
2017-01-05 15:16:56 -06:00
David Zero
f3469070fe Portability fixes
- CFLAG gnu99 was changed to c99.
- CXXFLAG c++98 was changed to c++11.
- CFLAG -pedantic-errors was added so that non-ISO C now throws errors.
- _XOPEN_SOURCE feature test macro added and set to 600 to expose SUSv3
  and c99 definitions in modules that required them.
- Fixed tests (and bootstrap daemon logging) that were failing due to
  the altered build flags.
- Avoid string suffix misinterpretation; explicit narrowing conversion.
- Misc. additions to .gitignore to make sure build artifacts don't wind
  up in version control.
2017-01-04 13:44:39 -08:00
Diadlo
b99e99f5d9
Add tests to secure memcmp and memzero functions. 2017-01-04 01:34:20 +03:00
iphydf
ce49e88d33
avoid dereferencing Tox_Options 2016-12-23 00:26:46 +00:00
iphydf
1c20e9f76b
Remove tox_options_copy. 2016-12-22 20:42:47 +00:00
iphydf
db71602731
Use tox_options_set_* instead of direct member access.
Also added a `tox_options_copy` function for cloning an options object.
This can be useful when creating several Tox instances with slightly
varying options.
2016-12-22 10:53:39 +00:00
iphydf
2328cb74ab
Improve documentation of crypto_core. 2016-12-22 10:26:59 +00:00
iphydf
ce29c8e7ec
Wrap all sodium/nacl functions in crypto_core.c. 2016-12-22 10:26:59 +00:00
iphydf
de623f9eb9
Add test to check if tox_new/tox_kill leaks.
We create and destroy 20k tox instances and run a single tox_iterate on
it. This test is not comprehensive, but provides a simple check to see
whether the destruction properly cleans up memory and perhaps other
resources.
2016-12-20 20:27:51 +00:00
pranomostro
1a1529c2c5
Add test for obtaining savedata, writing it to a file, reading it again and checking if it was read correctly. 2016-12-16 04:35:25 +00:00
pchk
22fca79ad7
Fixed attempt to join detached threads 2016-12-14 10:40:54 +00:00
iphydf
4cf69996cc
Add apidsl file for toxencryptsave.
This breaks the toxencryptsave API. It hides the Tox_Pass_Key struct
definition.
2016-12-13 14:24:40 +00:00
sudden6
3cfe5544b1
Fix version compatibility test.
Also added some test cases for it.
2016-12-13 02:06:25 +00:00
Robin Lindén
029c4fb83f Fix padding in SAVED_FRIEND struct and add test.
Test covers saving and loading of a Tox instance with a friend added.
2016-12-13 01:36:28 +01:00
iphydf
c8d7cf5002
Fix off by one error in saving our own status message. 2016-12-10 15:22:06 +00:00
Gregory Mullen (grayhatter)
ad517eb1df
add NAT hole punching level to Tox API 2016-11-24 17:38:34 -08:00
Robin Lindén
6e1a01bd16 Made saveformat platform-independent.
Fixes #215.
2016-11-21 00:28:33 +00:00
endoffile78
8899b69b40
Add DHT_create_packet 2016-11-11 15:53:04 -06:00
iphydf
aed24408db
Remove new_nonce function in favour of random_nonce.
`new_nonce` has been an alias for `random_nonce` for a while now. Having
two names for the same operation is confusing. `random_nonce` better
expresses the intent. The documentation for `new_nonce` talks about
guaranteeing that the nonce is different from previous ones, which is
incorrect, it's just quite likely to be different.
2016-11-09 22:30:49 +00:00
iphydf
82515f92ee
Move log callback to options.
Previously, all log messages generated by tox_new (which is quite a lot)
were dropped, because client code had no chance to register a logging
callback, yet. This change allows setting the log callback from the
beginning and removes the ability to unset it.

Since the log callback is forever special, since it can't be stateless,
we don't necessarily need to treat it uniformly (with `event`).
2016-11-06 20:35:09 +00:00
endoffile78
3f53090c1d
Remove assoc 2016-11-06 09:14:53 -06:00
iphydf
cf94537266
Enable all possible C compiler warning flags.
We disable the ones that fire, so we can use -Werror. We can then
investigate each warning individually and see whether to fix it or to
keep silencing it.
2016-11-06 01:32:10 +00:00
iphydf
96c672aef5
Compile as C++ for windows builds.
Compiling as C++ changes nothing semantically, but ensures that we don't
break C++ compatibility while also retaining C compatibility.

C++ compatibility is useful for tooling and additional diagnostics and
analyses.
2016-11-02 18:50:41 +00:00
iphydf
6d0c8060c1
Remove duplicate tests: split tests part 2. 2016-10-11 21:29:58 +02:00
iphydf
d9f37e4c33
Duplicate tox_test to 4 other files.
In a next step, we will remove tests from each file to have a per-binary
split of tests. This will help identify which tests fail most often on
Travis CI.

In another future step, we will split the large one_test into several
auto tests, which will make testing quite a bit slower (adding about 10
seconds setup time to each), but hopefully a lot more stable ("Tox went
offline" should not happen as much anymore).
2016-10-06 16:46:35 +01:00
iphydf
1977d56caa
Remove return after no-return situation (and other cleanups).
Cleanups:
- Fix header guards to not use reserved names.
- Avoid name shadowing.
- Removed an unused variable found by avoiding name shadowing.
2016-09-30 19:06:44 +01:00
iphydf
15cb426166
Make toxcore code C++ compatible.
It is still C code, so still compatible with C compilers as well. This
change lets us see more clearly where implicit conversions occur by
making them explicit.
2016-09-24 21:53:50 +01:00
iphydf
0d347c2b2e
Minor cleanups: unused vars, unreachable code, static globals.
- All global variables should be static unless they have an explicit
  extern declaration in a header file.
- `to_compare` was not used in encryptsave and toxav tests.
- `break` in switch cases is not required directly after `return`,
  `goto`, or a noreturn function like `abort`.
2016-09-24 20:52:09 +01:00
iphydf
18b298a3d6
Make TCP_Connections module-private. 2016-09-22 16:42:36 +01:00
iphydf
78d77349e4
Make TCP_Server opaque.
We should aim to make as many structures module-private as possible.
2016-09-22 11:22:32 +01:00
Jfreegman
dd2965a58f Make group callbacks stateless 2016-09-21 15:33:55 -04:00
iphydf
51d18236c8
Revert "Make ToxAV stateless"
This reverts commit 21f8db12c4.

It is currently broken. Incoming call callbacks are not invoked, and
instead the client goes offline immediately.
2016-09-19 21:53:40 +01:00
Jfreegman
8e43ca834c Complete old groupchat conversion to new API 2016-09-17 19:11:28 -04:00
iphydf
c0397a0a46 ApiDSL'ing old group chats (now: conference). 2016-09-17 19:11:28 -04:00
Gregory Mullen (grayhatter)
21f8db12c4
Make ToxAV stateless 2016-09-17 14:05:51 -07:00
iphydf
5da85c582d
Fix for windows dynamic libraries. 2016-09-17 19:54:22 +01:00
iphydf
1494e474dd
Ensure that all TODOs have an owner.
In the future, all TODOs added either need a bug number (TODO(#NN)) or a
person's github user name. By default, I made irungentoo the owner of
all toxcore TODOs, mannol the owner of toxav TODOs, and myself the owner
of API TODOs.
2016-09-16 12:06:02 +01:00
iphydf
37c041f815
Clean up Travis build a bit in preparation for osx/win. 2016-09-16 11:22:23 +01:00
iphydf
45d28904b9
Use <stdbool.h> and replace _Bool with bool.
This header is a requirement for the public API, therefore is assumed to
exist. It is a C99 standard library header, and _Bool is not intended to
be used directly, except in legacy code that defines bool (and
true/false) itself. We don't use or depend on such code. None of our
client code uses or depends on such code. There is no reason to not use
bool.
2016-09-13 22:01:45 +01:00
iphydf
a8823830d3
Add some astyle options to make it do more.
It now enforces a bit more formatting. In particular, padding inside
parentheses is removed. I would like it to remove padding after unary
operators, but there seems to be no option for that.
2016-09-13 01:07:02 +01:00
Chuong Vu
d9cd1b0c64 Use correct logical operator for tox_test
Check to ensure that all 3 tox instances are up rather than
just one.
2016-09-11 10:47:15 -07:00
michael bishop
05f474b4df
make the majority of the callbacks stateless and add some status to a testcase 2016-09-10 01:09:37 -03:00
iphydf
406d292107
Minor cleanups: header reordering, adding {}.
I hadn't done this for the "fun" code, yet. Also, we should include
system headers after our own headers.

"In general, a module should be implemented by one or more .cpp files.
Each of these .cpp files should include the header that defines their
interface first. This ensures that all of the dependences of the module
header have been properly added to the module header itself, and are not
implicit. System headers should be included after user headers for a
translation unit."
-- http://llvm.org/docs/CodingStandards.html#a-public-header-file-is-a-module
2016-09-09 19:30:50 +01:00
iphydf
ad26560516
Improve static and const correctness.
- Any non-externally-visible declarations should be `static`.
- Casting away the `const` qualifier from pointers-to-const is
  dangerous. All but one instance of this are now correct. The one
  instance where we can't keep `const` is one where toxav code actually
  writes to a chunk of memory marked as `const`. This code also assumes
  4 byte alignment of data packets. I don't know whether that is a valid
  assumption, but it's likely unportable, and *not* obviously correct.
- Replaced empty parameter lists with `(void)` to avoid passing
  parameters to it. Empty parameter lists are old style declarations for
  unknown number and type of arguments.
- Commented out (as `#if DHT_HARDENING` block) the hardening code that
  was never executed.
- Minor style fix: don't use `default` in enum-switches unless the number
  of enumerators in the default case is very large. In this case, it was
  2, so we want to list them both explicitly to be warned about missing
  one if we add one in the future.
- Removed the only two function declarations from nTox.h and put them
  into nTox.c. They are not used outside and nTox is not a library.
2016-09-06 11:54:37 +01:00
iphydf
5b57ab6332
Improve C standard compliance.
- Don't cast between object and function pointers.
- Use standard compliant `__VA_ARGS__` in macros.
- Add explicit `__extension__` on unnamed union in struct (it's a GNU
  extension).
- Remove ; after function definitions.
- Replace `const T foo = 3;` for integral types `T` with `enum { foo = 3 };`.
  Folding integral constants like that as compile time constants is a GNU
  extension. Arrays allocated with `foo` as dimension are VLAs on strictly
  compliant C99 compilers.
- Replace empty initialiser list `{}` with zero-initialiser-list `{0}`.
  The former is a GNU extension meaning the latter.
- Cast `T*` (where `T != void`) to `void *` in format arguments. While any
  object pointer can be implicitly converted to and from `void *`, this
  conversion does not happen in variadic function calls.
- Replace arithmetic on `void *` with arithmetic on `char *`. The former
  is non-compliant.
- Replace non-`int`-derived types (like `uint16_t`, which is
  `short`-derived) in bit fields with `int`-derived types. Using any type
  other than `int` or `unsigned int` (or any of their aliases) in bit
  fields is a GNU extension.
2016-09-06 11:09:10 +01:00
Gregory Mullen (grayhatter)
aad1e0ad3f
Make friend requests stateless
Messenger is slightly twisty when it comes to sending connection status
callbacks It will very likely need at the very least a partial refactor to
clean it up a bit. Toxcore shouldn't need void *userdata as deep as is
currently does.

(amend 1) Because of the nature of toxcore connection callbacks, I decided to
change this commit from statelessness for connections changes to statelessness
for friend requests. It's simpler this was and doesn't include doing anything
foolish in the time between commits.

group fixup because grayhatter doesn't want to do it

"arguably correct" is not how you write security sensitive code

Clear a compiler warning about types within a function.
2016-09-06 02:22:04 -07:00
iphydf
33edad8582
Add a short sleep before each tox_iterate in av test.
A race condition that happens on machines with heavily used network interfaces
causes tests to fail. Packets sent don't arrive on time. This sleep gives it 100
extra milliseconds. The real fix would be to wait for the event to occur and
then continue, but with a "once-loop" that is tox_iterate, it's not feasible at
this time.
2016-09-02 22:02:22 +01:00
iphydf
a759ddc7eb
Re-enable group chat tests.
They don't seem to be a lot less stable than the rest. Either way we regularly
need to restart builds to make timeouts go away.
2016-09-02 13:57:46 +01:00
iphydf
a9fbdaf46b
Do not use else after return.
http://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code
2016-09-02 11:02:56 +01:00
iphydf
77db27331e
Sort #includes in all source files. 2016-09-01 16:35:46 +01:00
iphydf
633da98ae6
Add braces to all if statements. 2016-08-31 20:04:16 +01:00
iphydf
8595d47e10
Remove unused and bit-rotten friends_test. 2016-08-31 18:11:44 +01:00
iphydf
13ae9e9a93
Move logging to a callback.
This removes the global logger (which by the way was deleted when the first tox
was killed, so other toxes would then stop logging). Various bits of the code
now carry a logger or pass it around. It's a bit less transparent now, but now
there is no need to have a global logger, and clients can decide what to log and
where.
2016-08-27 01:16:14 +01:00
mannol
1f25fc0ae4 Fix plane size calculation in test 2016-08-26 22:47:19 +02:00
iphydf
a45356ce3e
Avoid large stack allocations on thread stacks.
OS X and Windows have small thread stacks by default. Allocating audio and video
frames (about 962KB total) on the stack overflows it.
2016-08-26 21:17:24 +01:00
iphydf
a3f9893e89
Initialise the id in assoc_test.
Once every new moon, the assoc_test would fail because the key is 0. It
can be anything but 0 to succeed, so I made it 1.
2016-08-26 15:24:43 +01:00
Gregory Mullen (grayhatter)
8c8532a984
Reduce the timeout on travis to something much more reasonable
10x timeouts forces travis to kill our build without offering anything helpful
2016-08-25 11:52:46 -07:00
Gregory Mullen (grayhatter)
1f94c96266
Make the friend message callback stateless 2016-08-20 11:07:49 -07:00
Gregory Mullen (grayhatter)
0e18966a27
Make Typing change callback stateless
Moved a few #defines to the top of the header for better readability
2016-08-19 16:13:23 -07:00
iphydf
83d4857f08
Fix operation sequencing in TCP_test.
The expression was fun(foo = bar, foo). The evaluation order is unspecified,
and often this will do the wrong thing. We should forbid side effects in
argument lists and conditionals.
2016-08-19 19:46:23 +01:00
iphydf
bdf5ac37b4
Make friend_status_message callback stateless.
See #40 for details.
2016-08-18 17:19:23 +01:00
iphydf
6935643f9a
Fix some compiler warnings. 2016-08-18 17:10:15 +01:00
iphydf
a5e35180c7
Make tox_callback_friend_name stateless.
See #27 and #40 for details.
2016-08-18 00:01:53 +01:00
iphydf
dd8a568141
Make self_connection_status callback stateless.
**What are we doing?**

We are moving towards stateless callbacks. This means that when registering a
callback, you no longer pass a user data pointer. Instead, you pass a user data
pointer to tox_iterate. This pointer is threaded through the code, passed to
each callback. The callback can modify the data pointed at. An extra indirection
will be needed if the pointer itself can change.

**Why?**

Currently, callbacks are registered with a user data pointer. This means the
library has N pointers for N different callbacks. These pointers need to be
managed by the client code. Managing the lifetime of the pointee can be
difficult. In C++, it takes special effort to ensure that the lifetime of user
data extends at least beyond the lifetime of the Tox instance. For other
languages, the situation is much worse. Java and other garbage collected
languages may move objects in memory, so the pointers are not stable. Tox4j goes
through a lot of effort to make the Java/Scala user experience a pleasant one by
keeping a global array of Tox+userdata on the C++ side, and communicating via
protobufs. A Haskell FFI would have to do similarly complex tricks.

Stateless callbacks ensure that a user data pointer only needs to live during a
single function call. This means that the user code (or language runtime) can
move the data around at will, as long as it sets the new location in the
callback.

**How?**

We are doing this change one callback at a time. After each callback, we ensure
that everything still works as expected. This means the toxcore change will
require 15 Pull Requests.
2016-08-17 14:57:20 +01:00
iphydf
b5cfd33340
Add and use CMake build script
Also, fix the hstox build that was taking half an hour. It now takes 5 minutes.
Also, perform distcheck on travis to ensure that make dist works. It's not
actually failing the build at the moment due to broken tests.
2016-08-12 01:13:11 +01:00
iphydf
459f8f2013
Check code formatting on Travis.
We run astyle on Travis and check if there is a diff. The build terminates if
git finds a difference.
2016-08-12 01:00:00 +01:00
Gregory Mullen (grayhatter)
6f3e689eeb
Fix a few issues with running Toxcore tests on Travis-CI
> increased the timeout for TCP tests because per @irungentoo the network on Travis-CI can be slow sometimes

> allowed groupchats test to restart on error until timeout This had to be done because current groupchats are fundamentally broken and 3/5 times they'll 'net-split' on connect

>> Drop group chat tests, add comment to the reason

> added some debugging information to TCP tests, and a #define to force IPV6 (Travis-CI only uses IPv4 on their containers) and decreased the itr interval

> Went crazy with timeouts for Tox network stuff on Travis. Tests on TCP will still randomly fail due to timeouts. I can't reproduce on any local system. So again per @irungentoo, Travis is slow, let's offer it a short bus.
2016-08-11 14:41:57 -07:00
iphydf
fc330c1fa5
Silence/fix some compiler warnings.
Some of these (like the incompatible pointers one) are really annoying for
later refactoring.
2016-08-10 13:52:40 +01:00
Roman Yepishev
c886f906a8
Move argument comments to the end of line 2016-02-27 14:32:49 -05:00
Roman Yepishev
32d86978fd
Remove unused main() arguments 2016-02-27 12:07:04 -05:00
Roman Yepishev
9035325e56
Remove magic numbers from addr_resolve
* Add #defines for INET/INET6 returns
* Remove magic number 3 - exact AF_INET/INET6 result found.
* Updated network_test.c
2016-02-27 11:45:02 -05:00
irungentoo
94cc8b11ff
Realised there was no test to test these functions. 2016-01-30 21:56:54 -05:00
irungentoo
dfe5d9b256
Fixes.
Fixed bug from merged PR.

Don't build useless files when building with libsodium.
2016-01-30 17:23:15 -05:00
Roman Proskuryakov
ed3a794c9b fix: compare sensitive data with sodium_memcmp
fix: make increment_nonce & increment_nonce_number independent of user-controlled input
	fix: make crypto_core more stable agains null ptr dereference
2016-01-27 02:14:59 +03:00
irungentoo
b9ef24875c
Test fix. 2016-01-04 22:59:29 -05:00
irungentoo
9a87f03aec
Onion test fixed to work with faster DHT. 2015-12-15 14:58:36 -05:00
irungentoo
2d93eb2048
Better DHT tests. 2015-12-11 17:50:36 -05:00
irungentoo
f40a60575f
Slightly increased number of peers to announce to.
Some test fixes.
2015-12-01 20:11:53 -05:00
irungentoo
6a494e2cbd
Astyle. 2015-11-03 13:42:05 -05:00
Soumitra
fc25ca11d1 Changed gramatically incorrect comment in messenger_test 2015-10-23 22:54:22 +02:00
Soumitra
21b45b8b74 Added ommited words in comment 2015-10-23 22:54:22 +02:00
Eniz Vukovic
e5ddc0af03 Test should not assert when hangup fails 2015-10-11 00:43:05 +02:00
Eniz Vukovic
d6fdf16520 New Adaptive BR algorithm, cleanups and fixes 2015-10-10 23:54:23 +02:00
mannol
c641b0fceb Updated with upstream 2015-08-09 12:39:21 +02:00
irungentoo
6cb8ff4d65
Removed a useless define. 2015-08-07 20:53:53 -04:00
irungentoo
dfc154cc9e
client_id -> public_key 2015-07-29 22:39:56 -04:00
mannol
7d5de68364 Fixed CALL_STATE naming 2015-07-10 16:54:53 +02:00
irungentoo
1d4552c3c4
Test oob responding too. 2015-07-06 22:20:18 -04:00
irungentoo
06f4e8d6b6
Added a TCP test for oob packets. 2015-07-05 23:08:14 -04:00
irungentoo
a5b71e4c86
Test fix. 2015-07-04 22:43:05 -04:00
irungentoo
c259250abb
Fixed Tox reporting itself as being connected with TCP when using UDP only on LAN. 2015-07-03 21:52:53 -04:00
irungentoo
750201c901
Added a couple of checks to test. 2015-07-02 21:59:52 -04:00
irungentoo
7a3ca5d4c5
Basic tcp connections test done. 2015-07-01 22:13:27 -04:00
irungentoo
97d6c4ba18
TCP connections test start. 2015-06-29 22:27:47 -04:00
mannol
6c126e34e6 Implement handling capability change on rtp level 2015-06-30 01:41:38 +02:00
irungentoo
50e0802a62
Removed useless parameter from new_TCP_server() 2015-06-28 22:14:54 -04:00
mannol
2ecb71bb1e Renamed TOXAV_CALL_STATE to TOXAV_FRIEND_CALL_STATE 2015-06-27 17:28:07 +02:00
mannol
08bc4eb0e0 Added payload turning off by setting bit rate to 0 2015-06-27 01:55:28 +02:00
mannol
f9f17fdf10 Merge remote-tracking branch 'upstream/master' into new_api 2015-06-25 00:58:23 +02:00
mannol
a3132feddb Fixed sample size in callback and other stuff 2015-06-13 15:00:34 +02:00
irungentoo
836daa9e95
Added save/load live test. 2015-06-12 23:05:37 -04:00
irungentoo
81d95809fd
Test fix. 2015-06-07 20:56:02 -04:00
irungentoo
f4d0b85284
Save DHT nodes in a smarter way. 2015-06-06 22:13:43 -04:00
irungentoo
bf90c63c27
Added test. 2015-06-05 22:11:19 -04:00
mannol
d694839d60 Rebased on master and removed alpha channel (again) 2015-06-05 22:14:37 +02:00
irungentoo
5196aa82ca
Added test. 2015-06-04 22:18:09 -04:00
irungentoo
17f7376581
Add a test for loading with a secret key. 2015-06-01 20:16:03 -04:00
irungentoo
3f6a8f10bb
Allow empty keys in toxencryptsave. 2015-05-27 19:54:04 -04:00
irungentoo
8e80ced6ce
Move savedata to options struct.
Add a way to select the type of savedata (normal savedata, load a
secret key, potentially others?) to load.
2015-05-22 18:23:56 -04:00
mannol
3100042a2b Updated with master 2015-05-22 23:22:31 +02:00
irungentoo
2ba076ac5c
Load only secret key from tox save, not public key.
Calculate public key from it.
2015-05-21 20:39:47 -04:00
irungentoo
815725ab84
Some fixes. 2015-05-19 19:55:43 -04:00
irungentoo
40f113c077
Added tcp test. 2015-05-14 21:07:29 -04:00
irungentoo
478552d338
Fixes and changes to tox_bootstrap and tox_add_tcp_relay.
Functionality of both no longer overlaps.

If address has more than 1 ip, call the internal function on all of them.
2015-05-11 12:41:53 -04:00
irungentoo
3a28a8c5fb
Added basic TCP server hosting to tox.h api.
TODO: tell friends we are hosting a relay and prioritize using relays
hosted by friends over bootstrap ones.
2015-05-08 22:03:24 -04:00
mannol
73fbc22961 Fixed inconsistencies 2015-05-07 23:14:03 +02:00
mannol
eb6e8aa290 Fixed* api comments and some bugs 2015-05-01 22:29:25 +02:00
mannol
b2b11f0fba Added many test and fixed various warnings 2015-04-30 00:40:30 +02:00
mannol
9bba7a0434 Done 2015-04-29 01:01:25 +02:00
irungentoo
c3a6c5b92e
Small change to TCP test. 2015-04-08 20:50:19 -04:00
irungentoo
cf436fde12
Fixed onion test. 2015-04-06 15:57:23 -04:00
Dubslow
f7beee495e
Make keys into a struct for more programmer safety 2015-03-31 21:16:04 -05:00
Dubslow
9b66c57bd0
Fix minor code duplication 2015-03-31 19:30:09 -05:00
irungentoo
99e0fde297
Merge branch 'master' of https://github.com/dubslow/toxcore 2015-03-31 19:44:51 -04:00
Dubslow
e998aca8f7
Fix toxencryptsave to be consistent with new_api
Upon my own decision, the two tox_encryped_new convenience functions were removed due to basically needing two different sets of error codes.
At iphydf's suggestion the corresponding tox_get_encrypted_savedata convenience functions were removed as well.
2015-03-31 18:31:23 -05:00
irungentoo
06b389ea5e
Making tox_encrypted_new() use the same error codes as tox_new was a bad idea.
They now have their own error codes.
2015-03-26 12:39:09 -04:00
irungentoo
b0983104d5
Renamed tox_file_send_control to tox_file_control.
Renamed tox_file_send_seek to tox_file_seek.
2015-03-21 08:58:54 -04:00
irungentoo
8c2347222a
Transfers with filelength == 0 now behave exactly like transfers of every
other size (except streaming of course).
2015-03-21 08:35:31 -04:00
irungentoo
f2a017c055
Allow sending of file transfer requests with length 0 but don't allocate
any file number for them in core.

These can be used to tell friends we don't have an avatar set or to unset
a set avatar.
2015-03-20 21:15:44 -04:00
irungentoo
b1ec157175
For file transfers UINT64_MAX is now used as the size for streaming
transfers instead of 0.

For avatar transfers file size 0 now means that the client has no avatar
set.

Added a test for streaming transfers.
2015-03-20 20:12:07 -04:00
Dubslow
d8da9bf709
callback_file_request_chunk -> callback_file_chunk_request
A couple of minor reasons, combined warrant a PR imo:
a) fileChunkRequested is a better signal name than fileRequestChunkReceived, and I don't want to break consistency by reordering words for just this signal
b) "request chunk" is parsed by English speakers as a verb-object combination,
   implying sending the request, not receiving, whereas "chunk requested" is
   parsed (more correctly) as an adjective-noun combo (in particular, request is
   a noun not a verb), and thus reads far more like "hey heads up we just got a request"

For instance some tests/testing code had some callbacks to *receive* chunk requests, and they were called "tox_file_request_chunk"... to receive a chunk, not request it. Now they're called "tox_file_chunk_request".

So yeah...
2015-03-19 08:38:27 -05:00
irungentoo
e0bd6ef4e0
Renamed TOX_MESSAGE_TYPE_MESSAGE to TOX_MESSAGE_TYPE_NORMAL. 2015-03-18 17:14:57 -04:00
irungentoo
45cf8a744c
Merge branch 'one_more_rename' of https://github.com/dubslow/toxcore into new_api 2015-03-18 16:15:36 -04:00
irungentoo
d711362622
Merged normal message function and send action function into one
messaging function.

This removes code duplication and allows us to easily add new message
types to the api without having to add new functions.
2015-03-18 15:32:53 -04:00
Dubslow
2f65de6fd1
Move get_connection_status to self pseudonamespace, to contrast friend_get_connection_status 2015-03-18 14:18:36 -05:00
irungentoo
5b7cbc8956
Api changes.
receive to recv in file receive functions.

Added TOX_MAX_FILENAME_LENGTH define.
2015-03-18 12:54:00 -04:00
irungentoo
8286c2c22f
Save function renamed to tox_get_savedata() 2015-03-17 16:20:38 -04:00
irungentoo
ea8d27259f
Added tox_file_send_seek() function to api.
This function can be used to seek an incoming file tranfer right
before accepting it.

It is meant to be used to resume incomplete file tranfers by clients.
2015-03-17 15:05:17 -04:00
irungentoo
24c70c9e84
Added and implemented file_id parameter to file tranfers.
file_id is a 32byte identifier that can be used by users to identify
file tranfers across core/client restarts in order to resume broken
file tranfers.

In avatar tranfers it corresponds to the hash of the avatar.

Added tox_file_get_file_id() function to api to obtain the file_id
of an ongoing file transfer.

If not set, core will generate a random one.
2015-03-17 13:44:48 -04:00
iphydf
fa7c21f95c New API fixups. 2015-03-16 13:12:25 +00:00
irungentoo
29857a3da4
This belongs in the previous commit. 2015-03-13 16:33:55 -04:00
irungentoo
8e2957ec50
Merge branch 'newer_api' of https://github.com/dubslow/toxcore into new_api 2015-03-13 15:29:34 -04:00
Dubslow
64fefb6f43
revert to TOX_FILE_KIND 2015-03-13 12:34:14 -05:00
Dubslow
3bf259f69d Convert core code depending on the api 2015-03-12 18:23:14 -05:00
irungentoo
334cb9c8db
Check more ports in tox_test.c 2015-03-12 19:04:49 -04:00
irungentoo
8dc2db2025
Added position parameter to tox_file_send_chunk().
This is done so that the function now has the same parameters as the
request chunk callback.
2015-03-12 15:17:34 -04:00
irungentoo
7afab000f7
tox_new now sets error to TOX_ERR_NEW_PORT_ALLOC when binding to port fails. 2015-03-12 13:03:14 -04:00
irungentoo
1eca7b8e67
Added simple status message test to tox_test.c 2015-03-12 12:18:52 -04:00
irungentoo
43fe6e71bd
tox_callback_connection_status() implemented.
Attempted fix of connection checking to make it more stable.
2015-03-11 15:37:25 -04:00
irungentoo
88a8a079b6
Implemented the 3 low level network information functions.
Added tox_get_udp_port() to tests.
2015-03-11 08:09:45 -04:00
irungentoo
0207fcdfb0
Implementation of new api file transfers.
Everything should work except resuming.
2015-03-10 17:31:50 -04:00
irungentoo
36c3a270fd
Properly fixed encryptsave_test.c 2015-03-01 20:31:55 -05:00
irungentoo
680c7c2ecd
Merge branch 'new_api' of https://github.com/dubslow/toxcore into new_api 2015-03-01 20:14:01 -05:00
Dubslow
2d3077904e
Update encryption autotest 2015-02-28 12:55:40 -06:00
irungentoo
d015879cd3
Test fixes. 2015-02-27 20:33:43 -05:00
irungentoo
e61e2919a9
More tests ported to new api. 2015-02-26 08:24:19 -05:00
irungentoo
76dfccf2d6
Ported some tests to the new api. 2015-02-25 21:09:14 -05:00
irungentoo
78ea33b3f0
Fixed test. 2015-02-08 17:34:49 -05:00
irungentoo
23d76f484a
Fixed memory leak in test. 2015-02-08 16:30:48 -05:00
irungentoo
d9ea6e9485
Properly free everything at the end of each test. 2015-02-07 22:57:04 -05:00
irungentoo
f463cb52a2
Code cleanups.
Rename array in Node_format from client_id to public_key.
2015-01-29 19:38:44 -05:00
irungentoo
dd59d99a7a
Fixed bug in tox_load where names of size TOX_MAX_NAME_LENGTH didn't
load.
2014-12-21 22:12:12 -05:00
irungentoo
d1eb793a9c
auto test group titles. 2014-12-20 23:12:43 -05:00
irungentoo
82ba83e526
cs_set_video_encoder_resolution improvements. 2014-12-16 13:10:28 -05:00
irungentoo
d6da08fe9d
Fixed test. 2014-12-15 19:04:56 -05:00
irungentoo
015a8b7d75
Sendback data size is always 8 bytes. 2014-12-14 20:33:31 -05:00
irungentoo
6f3312c137
More group auto testing. 2014-12-13 21:56:36 -05:00
irungentoo
36851e7b38
Test if everything goes well when a peer leaves the group chat. 2014-12-11 20:10:57 -05:00
irungentoo
4eeeb8e9ab
Added a tox_add_friend auto test. 2014-12-10 12:12:37 -05:00
irungentoo
4ec9295259
Fixed tox_test.c 2014-12-09 18:13:39 -05:00
irungentoo
7d27893f1a
Merge branch 'more_consistent_custom_packet_handlers' of https://github.com/wrouesnel/toxcore 2014-12-09 16:39:52 -05:00
Will Rouesnel
d595a28b49 Patch auto_tests/tox_test.c with the new prototype 2014-12-09 11:00:24 +11:00
irungentoo
422f228921
Test now works with large groups. 2014-12-05 22:37:02 -05:00
irungentoo
5112156953
Added basic group message test. 2014-12-05 21:39:46 -05:00
irungentoo
035cd7ece3
Added simple group auto test. 2014-12-04 20:54:59 -05:00
mannol
e62ded3a6d More av cleanup 2014-11-29 13:42:19 +01:00
irungentoo
767c0653bd
Attempted fix of threading issue in test. 2014-11-27 21:08:01 -05:00
irungentoo
89f2436fac
Astyle autotests. 2014-11-25 15:31:46 -05:00
irungentoo
279c33c01a
Merge branch 'master' of https://github.com/mannol/toxcore 2014-11-24 20:24:59 -05:00
irungentoo
6bbb939855
Cleaned up packet length types in toxcore.
They are now all uint16_t instead of sometimes being uint32_t.

Replaced some other uint32_t with unsigned ints.
2014-11-21 20:18:29 -05:00
mannol
386c9748d4 av refactor 2014-11-18 00:46:46 +01:00
dubslow
d90ee9d4e4 fix #1124 by adding salt manip functions
Also, all data now has the magic number prepended. This is incompatible
for all but the save/load functions, but I think nothing besides the one
experimental qTox branch used any of those, which is why I feel confident
about the change.
2014-10-23 04:19:18 -05:00
dubslow
ff1d4faa74 add new test cases, cleanup astray printf 2014-10-17 09:23:21 -05:00
dubslow
ffb13e4716 add load/save from key instead of pw 2014-10-17 06:02:15 -05:00
dubslow
e6f30694d3 refactor toxencryptedsave to allow passphrase encryption of arbitrary data
also a minor API change for clarity
2014-10-08 18:50:40 -05:00
dubslow
eee37b5767 fix #1104 2014-10-07 21:53:04 -05:00
irungentoo
f2a313359e
Added callbacks to onion_client and net_crypto for the temp dht key.
Better than the polling mess.

Moved DHT to Messenger from onion_client (still needs some cleanups).
2014-09-26 20:32:38 -04:00
irungentoo
939f2003ef
Removed now useless network sturct size tests. 2014-09-26 18:01:03 -04:00
irungentoo
900d72f951
Fixed test. 2014-09-21 15:15:35 -04:00
irungentoo
c43526be9c
Fixed memory leak. 2014-09-21 14:55:23 -04:00
dubslow
579e7998b7 encrypted save fully work with both libsodium and nacl
they both reliably pass "make check"
2014-09-12 21:15:05 -05:00
Dubslow
c26c6d86ae memzero() segfaulted for unknown reasons... probably pebkac... 2014-09-11 22:42:22 -05:00
Dubslow
26566666aa testing works, but doesn't pass... 2014-09-11 21:28:50 -05:00
irungentoo
a0302b7aca
Added tests for custom lossy and lossless packets.
Fixed bug with lossless packets.
2014-09-08 12:20:44 -04:00
irungentoo
06eff4b44b
Increased number of friends tested in tox_test. 2014-09-04 20:54:55 -04:00
irungentoo
ef78169842
Added disabling of UDP and basic SOCKS5 proxy support to public API.
tox_new() now takes a Tox_Options struct as argument.

If a NULL pointer is passed to that struct, defaults are used.
2014-08-14 18:34:20 -04:00
irungentoo
1298932deb
UDP can now be disabled.
new_messenger() now takes an options struct as an argument.
2014-08-14 15:27:34 -04:00
irungentoo
78dd2234e0
Added basic socks5 proxy support to TCP client. 2014-08-14 14:31:26 -04:00
irungentoo
bc4fe2c80d
Decreased maximum onion_test test time. 2014-08-13 10:15:25 -04:00
irungentoo
f6955f2f3e
Merge branch 'remove-sort_list' of https://github.com/pyruvate/toxcore 2014-08-09 17:35:23 -04:00
pyruvate
354f08ec3b Tests fix for an original behavior for duplicates 2014-08-09 13:31:40 +03:00
pyruvate
bdf1c97273 Refactoring of node replacements in addto_lists function
An index for replacement candidate is searched
in one lookup cycle for all types (bad, possibly bad, good).
Sorting of items has been removed (sorting logic can be substituted
by a maximum search).
2014-08-09 11:33:20 +03:00
pyruvate
a460b9fbd0 Added tests for addto_lists function 2014-08-09 11:33:20 +03:00
pyruvate
ec9082f2c3 Remove DEFTESTCASE and DEFTESTCASE_SLOW redefinitions 2014-08-09 11:33:20 +03:00
irungentoo
69c8da64cf
The receiver of a file now needs to confirm that he did receive it
correctly.

This should fix an issue that happened when both clients got
disconnected when the file was almost finished sending. The sender
would show that the file had been sent successfully when it had not.

See the modifications to tox.h
2014-08-04 15:18:18 -04:00
irungentoo
0719a4296e
Merge branch 'mannol1-master' 2014-08-02 11:29:27 -04:00
mannol
6c1ac97da9 Added userdata pointer to audio/video callbacks 2014-08-02 01:09:33 +02:00
notsecure
c0a7cbbf73 fix test 2014-07-31 15:33:12 -04:00
pyruvate
87dd6becf7 Fix test_many_clients in tox_test
Stack variable to_comp goes out of scope,
but a reference to the variable is used later
in Fiend_Requests.
2014-07-28 02:54:43 +03:00
pyruvate
1e5e8eb2e8 Fixed undefined references from libvpx.so in toxav_basic_test 2014-07-27 16:51:45 +03:00
irungentoo
ab4673e873
Merge branch 'mannol1-master' 2014-07-26 21:26:32 -04:00
mannol
fc230c8671 Fixed tests and conflicts 2014-07-27 00:26:58 +02:00
mannol
54e7d29589 Make codec settings dynamic 2014-07-26 19:29:49 +02:00
irungentoo
6ede3e8ad4
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-07-22 11:20:55 -04:00
mannol
0cf9f27b70 This should fix test failing 2014-07-21 22:11:59 +02:00
mannol
79115259a8 Fixed conflicts 2014-07-21 04:10:05 +02:00
mannol
1aeeef58b2 Improved protocol and cleaned code a bit 2014-07-21 01:10:57 +02:00
notsecure
b90ecb377d locks in test 2014-07-07 18:47:49 -04:00
notsecure
c527979daa make autotests compile 2014-07-07 17:37:05 -04:00
irungentoo
65b4c026f4
The width and height set during the video encoder initialization is
now described as the maximum width and height of images.

This is to work around what appears to be a bug in libvpx where the
resolution of the stream can be decreased but increasing it above
its originally set value introduces memory corruption.
2014-07-05 14:36:19 -04:00
irungentoo
c4f0650ae3
Fixed const related warnings. 2014-07-02 16:04:41 -04:00
irungentoo
139cfa7aeb
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-06-22 19:54:40 -04:00
mannol
6f46dd5afd Removed hamful code 2014-06-23 00:22:01 +02:00
irungentoo
881b2d900d
Fixed some warnings. 2014-06-15 20:49:39 -04:00
irungentoo
2fa8815a85
Fixed some warnings. 2014-06-10 18:51:40 -04:00
irungentoo
07936960df
Astyle and fixes. 2014-06-10 18:35:55 -04:00
irungentoo
ac5e44debb
Kill toxes when finished in tox_test to test tox_kill. 2014-06-06 09:50:19 -04:00
irungentoo
ad20432494
tox_test now checks if TOX_MAX_MESSAGE_LENGTH is correctly set. 2014-06-01 20:48:02 -04:00
irungentoo
89bf08287d
Renamed tox_do_run_interval to tox_do_interval.
tox_do_interval now returns a time in ms based on how much action
is going on in net_crypto.
2014-05-30 23:01:17 -04:00
irungentoo
2a719f3168
Fixed issue. 2014-05-25 12:45:09 -04:00
irungentoo
9a4659e575
Replaced randombytes_salsa20_random_buf() with randombytes() in av tests. 2014-05-25 12:28:59 -04:00